[123doc.vn] - Bai Tap Java 1 Phan 2

  • Upload
    codez93

  • View
    44

  • Download
    0

Embed Size (px)

Citation preview

  • Bi tp thc hnh Java 1 Module 8

    Trang 25/39

    Module 8. Graphic User Interface Ni dung kin thc thc hnh:

    + B tr cc thnh phn trong giao din

    + S dng mt s i tng giao din: JButton, JLabel, JTextField

    + iu khin s kin

    Bi 1.

    Vit lp InstantMessageFrame, lp ny tha k lp JFrame. Yu cu vit mt constructor cho

    lp ny, constructor c mt tham s kiu String biu din tiu ca JFrame. Trong constructor yu

    cu:

    + To tiu cho JFrame

    + Cho kch thc JFrame l 220, 450

    + Cho hin JFrame

    Vit hm main trong lp InstantMessageFrame, trong hm main khi to i tng

    InstantMessageFrame vi tiu l My IM Program.

    Bin dch v chy chng trnh. Sau ln lt thm vo cc lnh sau v thc hin li:

    - setDefaultCloseOperation(EXIT_ON_CLOSE)

    tht s thot chng trnh khi ngi dng ng frame

    - setResizable(false)

    khng cho php thay i kch thc frame.

    - Dimension d = getToolkit().getScreenSize();

    int wLocate = (int)(d.getWidth()/2-this.getWidth()/2);

    int hLocate = (int)(d.getHeight()/2-this.getHeight()/2);

    setLocation(wLocate, hLocate);

    cho frame xut hin gia mn hnh.

    Bi 2.

    Thit k giao din nh sau:

    Yu cu cho ch Continue? mu v hai nt c cha hnh.

    X l s kin: khi ngi dng nhn nt Cancel th thot khi chng trnh.

    HD: Mun thot chng trnh vit lnh: System.exit(0);

    Bi 3.

    Thit k giao din nh sau:

  • Bi tp thc hnh Java 1 Module 8

    Trang 26/39

    Khi ngi dng nhn vo nt no th mu ca panel s c i tng ng.

    Bi 4.

    Tng t bi trn, thit k chng trnh cho php ngi dng i kiu ch trong label. Giao din

    cha 4 nt thay i kiu ch l Times New Roman, Arial, Courier New, Arial Black", mc nh

    cho kch thc ch trong label l 20.

    Bi 5.

    Thit k giao din nh sau:

    Bi 6.

    Thit k giao din nh hnh:

    Chng trnh cho ngi dng nhp s vo 2 JTextField u tin, khi nhn Enter vo mt trong

    hai th chng trnh tnh thng ca chng v xut kt qu ra RESULT.

    Yu cu s dng cu trc try-catch bt li nhp liu.

    HD: chuyn chui thnh s nguyn, dng hm Integer.parseInt(String), hm ny s pht sinh ra ngoi l l NumberFormatException nu chui truyn vo khng phi chui s.

    Bi 7.

    Vit chng trnh tnh bnh phng ca mt s.

  • Bi tp thc hnh Java 1 Module 8

    Trang 27/39

    Thit k giao din gm mt JTextField nhp s, hai JButton tnh v ng chng trnh,

    mt JLabel hin kt qu. Khi ngi dng nhn nt hoc nhn Enter trn JTextField th chng trnh

    xut kt qu. Yu cu s dng cu trc try-catch bt li nhp liu.

    Bi 8.

    Thit k giao din nh sau:

    Tham kho cch lm sau:

    import javax.swing.*; import java.awt.event.*; import java.awt.*; public class frmLogin extends JFrame implements ActionListener { private JTextField txtUserName; private JPasswordField txtPSW; private JButton btnLogin, btnCancel; public frmLogin() { super("Log on Program");

    JPanel pTop = new JPanel(new GridLayout(1,1)); JPanel pCen = new JPanel(new BorderLayout()); JPanel pBot = new JPanel(new FlowLayout(FlowLayout.CENTER, 20, 5)); add(pTop, BorderLayout.NORTH); add(pCen, BorderLayout.CENTER); add(pBot, BorderLayout.SOUTH); pTop.setBorder(BorderFactory.createLineBorder(Color.red)); pBot.setBorder(BorderFactory.createLineBorder(Color.red)); JLabel lblTitle = new JLabel("Logon", SwingConstants.CENTER); lblTitle.setForeground(Color.red); lblTitle.setFont(new Font("Vivaldi", Font.BOLD, 35)); pTop.add(lblTitle); pBot.add(btnLogin = new JButton("Logon", new ImageIcon("Images/Logon.gif"))); pBot.add(btnCancel = new JButton("Exit", new ImageIcon("Images/Exit.gif"))); btnCancel.addActionListener(this); btnLogin.addActionListener(this);

  • Bi tp thc hnh Java 1 Module 8

    Trang 28/39

    btnLogin.setMnemonic('L'); btnCancel.setMnemonic('x'); JPanel pM = new JPanel(); JPanel p1 = new JPanel( new FlowLayout(FlowLayout.RIGHT)); JPanel p2 = new JPanel( new FlowLayout(FlowLayout.RIGHT)); p1.add(new JLabel("User Name :", SwingConstants.RIGHT)); p1.add(txtUserName = new JTextField(20)); p2.add( new JLabel("Password :", SwingConstants.RIGHT)); p2.add(txtPSW = new JPasswordField(20)); Box b = Box.createVerticalBox(); b.add(Box.createVerticalStrut(30)); b.add(p1); b.add(p2); pM.add(b); pCen.add(pM, BorderLayout.CENTER); JLabel lblIMG = new JLabel(new ImageIcon ("Images/AboutImage.gif")); pCen.add(lblIMG, BorderLayout.WEST); lblIMG.setBorder(BorderFactory.createLineBorder(Color.red)); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setSize(500, 250); setResizable(false); Dimension d = getToolkit().getScreenSize(); int wLocate = (int)(d.getWidth()/2-this.getWidth()/2); int hLocate = (int)(d.getHeight()/2-this.getHeight()/2); setLocation(wLocate, hLocate); setVisible(true); } //============================================================== public void actionPerformed(ActionEvent e) { Object o=e.getSource(); if(o.equals(btnCancel)) { exitProgram(); } else if(o.equals(btnLogin)) { login(); } } //============================================================== private void login() { String user, pass; user = txtUserName.getText().trim(); pass = txtPSW.getText().trim(); if (user.equals("")) { JOptionPane.showMessageDialog(this,"User name must be filled"); txtUserName.requestFocus(); return;

  • Bi tp thc hnh Java 1 Module 8

    Trang 29/39

    } if (pass.equals("")) { JOptionPane.showMessageDialog(this,"Password must be filled"); txtPSW.requestFocus(); return; } if (!user.equals("ABC")) { JOptionPane.showMessageDialog(this,"User not existed."); txtUserName.requestFocus(); return; } if (!pass.equals("123")) { JOptionPane.showMessageDialog(this,"Password is not correct."); txtPSW.requestFocus(); return; } //Neu dungpassword, username. Viec dang nhap thanh cong //Hien thi giao dien chinh len //...(tu viet) this.dispose(); //Dong giao dien login } //============================================================== private void exitProgram() { int selValue = JOptionPane.showConfirmDialog(this, "Are you sure to exit program?", "Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(selValue == JOptionPane.YES_OPTION) System.exit(0); } //============================================================== public static void main (String[] args){new frmLogin();} }

  • Bi tp thc hnh Java 1 Module 9

    Trang 30/39

    Module 9. Ni dung kin thc thc hnh:

    + JCheckBox, JRadioButton

    + JComboBox, Jlist

    + Menu

    Bi 1.

    Thit k giao din nh sau:

    Hot ng: Chng trnh cho php thay i nh dng ch trong JTextField khi nhn chn

    checkbox tng ng.

    Bi 2.

    Thit k giao din nh sau:

    Hot ng: Chng trnh cho php thay i nh dng ca ch trong JTextField khi nhn chn

    radiobutton tng ng.

    Bi 3.

    Thit k giao din nh sau:

    JComboBox cha sn mt s tn file hnh, khi chng trnh hin ln th cho xut hin hnh u

    tin ln JLabel.

    Hot ng: Khi ngi dng chn tn hnh no trong JComboBox th chng trnh s hin hnh

    ra label.

    Bi 4.

    Lm li bi tp trn nhng danh sch tn cc file hnh trong JComboBox c c t file ra.

  • Bi tp thc hnh Java 1 Module 9

    Trang 31/39

    Bi 5.

    Thit k giao din nh sau:

    Hot ng: Khi ngi dng chn mt dng trn JList th dng s hin ra trn JLabel bn trn.

    Yu cu thit lp:

    + Ni dung trong JLabel c canh gia, to ng vin, i mu nn, i mu ch cho JLabel.

    + Khng cho php chn nhiu dng trn JList.

    + Khi chng trnh hin ln th dng u tin phi c chn.

    Bi 6.

    Thit k giao din nh sau:

    Chng trnh cho php ngi dng sao chp cc mc chn trong JList bn tri qua JList bn phi

    khi nhn nt Copy>>>.

    D liu trong cc JList phi c c t file ra v khi nhn nt ng chng trnh th chng

    trnh s cho php lu d liu thay i trong JList bn phi vo file.

    Thm vo chng trnh menu lu, ng, sao chp.

    Bi 7.

    Thit k giao din nh sau: giao din gm 2 JButton v 1 JList c thanh cun.

    Hot ng: Chng trnh cho php thm v xa mt mc trong JList nh sau:

    + Khi ngi dng nhn nt Add Philosopher th chng trnh hin ra mt ca s cho nhp

    tn nh hnh bn di, khi nhn nt OK th thm vo JList, ch trng hp nhp tn trng.

  • Bi tp thc hnh Java 1 Module 9

    Trang 32/39

    + Khi ngi dng nhn nt Remove Selected Philosopher th chng trnh s xa mc

    ang chn trong JList, trc khi xa phi hi xc nhn li, nu khng chn mc no xa th phi

    thng bo.

    Thm vo chng trnh menu.

    Bi 8.

    Thit k giao din nh hnh sau:

    Yu cu x l:

    + Khi nhn nt Add Item th thm ni dung nhp vo JList, cnh bo ngi dng trng

    hp trng nhp hoc nhp trng d liu c.

    + Khi nhn nt Remove Item th cho php xa cc dng ang chn trong JList, trc khi xa

    phi hi xc nhn li, cnh bo ngi dng trng hp khng chn m xa.

    + Khi nhn chn mt dng trn JList th hin ni dung dng ln nhp liu.

    + Khi nhn nt Edit Item th cho php sa ni dung dng ang chn thnh ni dung mi

    trong nhp liu.

    Bi 9.

    (i) Vit lp HinhChuNhat tnh chu vi v din tch, trong c hm toString() tr v chui cha

    cc thng tin l chiu di, chiu rng, chu vi, din tch (mi ct cch nhau bi cc khong

    trng).

    (ii) Thit k giao din nh hnh sau:

  • Bi tp thc hnh Java 1 Module 9

    Trang 33/39

    Yu cu x l:

    + Nt Tnh: xut kt qu tnh chu vi v din tch, ch phi thng bo li khi:

    - Khng nhp d liu.

    - D liu nhp khng phi l s.

    - D liu nhp l s m.

    + Nt Thm: thm mt dng vo JList vi cc thng tin nh hnh. Kim tra d liu nh nt Tnh.

    + Nt Xa: xa mt dng ang chn trn JList, yu cu chn trc khi xa v hi xc nhn trc

    khi xa.

    + Khi chn 1 dng trn JList th hin thng tin dng ln cc nhp liu (xem hnh).

    Bi 10.

    (i) Vit lp ChiPhi vi yu cu:

    + Thuc tnh: loi ph (String), tin (double).

    + Vit cc hm khi to.

    + Vit cc hm get/set.

    + Hm toString(): tr v chui cha 2 thng tin l loi ph v tin.

    (ii) Thit k giao din nh hnh di y:

  • Bi tp thc hnh Java 1 Module 9

    Trang 34/39

    Yu cu x l s dng lp ChiPhi:

    + Nt Thm: thm mt dng vo JList bn di vi 2 thng tin tng ng l Loi ph v Tin

    (xem hnh). Ch khng c thm khi:

    - Khng nhp d liu.

    - nhp tin khng phi s.

    - nhp tin l s m.

    + Nt Xa: xa mt dng ang chn trn JList, yu cu chn trc khi xa v hi xc nhn trc

    khi xa.

    + Nt Bo co: xut ra tng chi ph.

    + Khi chn 1 dng trn JList th hin thng tin dng ln cc nhp liu.

    + Nt Thot: ng chng trnh.

  • Bi tp thc hnh Java 1 Module 10

    Trang 35/39

    Module 10. Ni dung kin thc thc hnh:

    + JSlider

    + JSplitPane

    + JTable

    + JTree

    Bi 1.

    Vit chng trnh i mu panel dng JSlider nh hnh:

    Bi 2.

    Thit k giao din nh hnh bn di:

    + Khi ngi dng nhn nt Add Philosopher th chng trnh ln lt hin ra cc ca s cho

    nhp vo First Name, Last Name v Years, sau a cc thng tin ny ln JTable

    + Khi ngi dng nhn nt Remove Selected Philosopher th chng trnh s xa mc

    ang chn trong JTable, nu khng chn mc no xa th phi thng bo, trc khi xa phi hi xc

    nhn li.

  • Bi tp thc hnh Java 1 Module 10

    Trang 36/39

    Bi 3.

    i. Vit lp NhanVien vi cc yu cu sau:

    Thuc tnh: m nhn vin (String), phn xng (String), s sn phm (int).

    Cc hm khi to.

    Cc hm get/set.

    Hm getChuan(): tr v gi tr 300 nu l phn xng A, cn li tr v 500.

    (ch c cc phn xng l A, B, C, D).

    Hm VuotChuan(): tr v true khi s sn phm vt chun (chun ty theo phn xng),

    ngc li tr v false.

    Hm TinhLuong(): tr v lng ca nhn vin, lng = s sn phm * n gi, nu s sn

    phm vt chun th phn vt c tnh n gi l 30000, cn li tnh n gi l 20000.

    Hm toString(): tr v m nhn vin.

    ii. Thit k giao din nh hnh bn di

    Giao din cho nhp m nhn vin, s sn phm, chn phn xng. Yu cu Tin lng c

    nh dng nh hnh.

    Yu cu x l:

    + Khi ngi dng chn phn xng no trn combobox th hin S sn phm chun tng ng.

    + Nt Tnh lng: xut ra lng ca nhn vin ang nhp (xem hnh). Yu cu kim tra d

    liu nhp.

    + Nt Thm: thm nhn vin ang nhp vo JTable vi cc ct nh hnh. Ch khng c

    thm khi:

    - Khng nhp d liu.

    - S sn phm khng phi l s.

  • Bi tp thc hnh Java 1 Module 10

    Trang 37/39

    - Trng m nhn vin.

    + Nt Xa: xa mt nhn vin ang chn trn JTable. Ch phi hi trc khi xa v khng

    c xa khi cha chn dng no.

    + Khi chn 1 dng trn JTable th hin thng tin nhn vin ln cc nhp liu (xem hnh).

    + Khi ngi dng nhn nt Sa th chng trnh sa thng tin ca nhn vin ang chn vo

    JTable. Ch khng c sa khi:

    - Khng c d liu.

    - S SP khng phi l s.

    - Trng m nhn vin.

    Bi 4.

    (i) Vit lp SinhVien vi yu cu sau:

    Thuc tnh: m sinh vin (String), h tn (String), m lp (String), im mn 1 (double), im

    mn 2 (double).

    Cc hm khi to.

    Cc hm get/set.

    Hm DiemTrungBinh(): tr v im trung bnh ca 2 mn hc.

    Hm KetQua(): tr v u khi im trung bnh >=5, ngc li l Rt.

    Hm toString(): tr v m sinh vin.

    (ii) Thit k giao din nh hnh bn di

    Giao din cho nhp m sinh vin, h tn, chn m lp, nhp im mn 1, mn 2.

    Yu cu x l:

    + Nt Kt qu: xut ra im trung bnh v kt qu ca sinh vin ang nhp (xem hnh). Ch

    nhp im mn 1 v mn 2 phi l s.

    + Nt Thm: thm mt sinh vin vo table vi cc ct nh hnh. Ch khng c thm khi:

    - Khng nhp d liu.

    - im mn 1 v mn 2 khng phi l s.

  • Bi tp thc hnh Java 1 Module 10

    Trang 38/39

    - Trng m sinh vin.

    + Nt Xa: xa mt sinh vin ang chn trn table. Ch phi hi trc khi xa v khng

    c xa khi cha chn dng no.

    + Khi chn 1 dng trn table th hin thng tin sinh vin ln cc nhp liu (xem hnh).

    Bi 5.

    Thit k giao din v thc hin nh hnh bn di:

    Chng trnh cho php thm 1 nt con hoc nt anh em ca nt ang chn khi ngi dng nhn

    nt Add Child hoc Add Sibling, nt Delete s xa nt ang chn.

    Bi 6.

    (i) Vit lp SinhVien vi yu cu sau:

    Thuc tnh: m sinh vin (String), h tn (String), gii tnh (boolean), m lp (String).

    Cc hm khi to.

    Cc hm get/set.

    Hm toString(): tr v chui thng tin gm: m sinh vin h tn gii tnh.

    (ii) Thit k giao din nh hnh bn di:

  • Bi tp thc hnh Java 1 Module 10

    Trang 39/39

    Yu cu giao din: Trn JTree c sn nt gc DS lop v cc nt con l cc m lp: NCTH2A,

    NCTH2B, NCTH2C, NCTH2K.

    Yu cu x l:

    + Nt Thm: thm mt sinh vin vo lp ang chn trn JTree (xem hnh). Ch khng c

    thm khi:

    - Khng nhp d liu.

    - Khng chn m lp trn JTree.

    - Trng m sinh vin.

    + Nt Xa: xa sinh vin ang chn trn JTree. Ch phi hi trc khi xa v khng c

    xa khi:

    - Khng chn nt mun xa.

    - Chn vo nt gc hoc nt m lp.

    + Khi chn nt sinh vin th hin thng tin sinh vin ln cc nhp liu (xem hnh).