Bài tập thực hành Java 1 - Module 8 - Graphic User Interface

15 1.6K 13
Bài tập thực hành Java 1 - Module 8 - Graphic User Interface

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài tập thực hành Java – Module Module Graphic User Interface Nội dung kiến thức thực hành: + Bố trí thành phần giao diện + Sử dụng số đối tượng giao diện: JButton, JLabel, JTextField + Điều khiển kiện Bài Viết lớp InstantMessageFrame, lớp thừa kế lớp JFrame Yêu cầu viết constructor cho lớp này, constructor có tham số kiểu String biểu diễn tiêu đề JFrame Trong constructor yêu cầu: + Tạo tiêu đề cho JFrame + Cho kích thước JFrame 220, 450 + Cho JFrame Viết hàm main lớp InstantMessageFrame, hàm main khởi tạo đối tượng InstantMessageFrame với tiêu đề “My IM Program” Biên dịch chạy chương trình Sau thêm vào lệnh sau thực lại: - setDefaultCloseOperation(EXIT_ON_CLOSE)  thật chương trình người dùng đóng frame - setResizable(false)  khơng cho phép thay đổi kích thước 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 xuất hình Bài Thiết kế giao diện sau: Yêu cầu cho chữ “Continue?” màu đỏ hai nút có chứa hình Xử lý kiện: người dùng nhấn nút Cancel khỏi chương trình HD: Muốn chương trình viết lệnh: System.exit(0); Bài Thiết kế giao diện sau: Trang 25/39 Bài tập thực hành Java – Module Khi người dùng nhấn vào nút màu panel đổi tương ứng Bài Tương tự trên, thiết kế chương trình cho phép người dùng đổi kiểu chữ label Giao diện chứa nút để thay đổi kiểu chữ “Times New Roman”, “Arial”, “Courier New”, “Arial Black", mặc định cho kích thước chữ label 20 Bài Thiết kế giao diện sau: Bài Thiết kế giao diện hình: Chương trình cho người dùng nhập số vào JTextField đầu tiên, nhấn Enter vào hai chương trình tính thương chúng xuất kết ô RESULT Yêu cầu sử dụng cấu trúc try-catch để bắt lỗi nhập liệu HD: Để chuyển chuỗi thành số nguyên, dùng hàm Integer.parseInt(String), hàm phát sinh ngoại lệ NumberFormatException chuỗi truyền vào chuỗi số Bài Viết chương trình tính bình phương số Trang 26/39 Bài tập thực hành Java – Module Thiết kế giao diện gồm JTextField để nhập số, hai JButton để tính đóng chương trình, JLabel để kết Khi người dùng nhấn nút nhấn Enter JTextField chương trình xuất kết Yêu cầu sử dụng cấu trúc try-catch để bắt lỗi nhập liệu Bài Thiết kế giao diện sau: Tham khảo cách làm 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); Trang 27/39 Bài tập thực hành Java – Module 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; Trang 28/39 Bài tập thực hành Java – Module } 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 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();} } Trang 29/39 Bài tập thực hành Java – Module Module Nội dung kiến thức thực hành: + JCheckBox, JRadioButton + JComboBox, Jlist + Menu Bài Thiết kế giao diện sau: Hoạt động: Chương trình cho phép thay đổi định dạng chữ ô JTextField nhấn chọn checkbox tương ứng Bài Thiết kế giao diện sau: Hoạt động: Chương trình cho phép thay đổi định dạng chữ ô JTextField nhấn chọn radiobutton tương ứng Bài Thiết kế giao diện sau: JComboBox chứa sẵn số tên file hình, chương trình lên cho xuất hình lên JLabel Hoạt động: Khi người dùng chọn tên hình JComboBox chương trình hình label Bài Làm lại tập danh sách tên file hình JComboBox đọc từ file Trang 30/39 Bài tập thực hành Java – Module Bài Thiết kế giao diện sau: Hoạt động: Khi người dùng chọn dịng JList dịng JLabel bên u cầu thiết lập: + Nội dung JLabel canh giữa, tạo đường viền, đổi màu nền, đổi màu chữ cho JLabel + Khơng cho phép chọn nhiều dịng JList + Khi chương trình lên dịng phải chọn Bài Thiết kế giao diện sau: Chương trình cho phép người dùng chép mục chọn JList bên trái qua JList bên phải nhấn nút “Copy>>>” Dữ liệu JList phải đọc từ file nhấn nút đóng chương trình chương trình cho phép lưu liệu thay đổi JList bên phải vào file Thêm vào chương trình menu để lưu, đóng, chép Bài Thiết kế giao diện sau: giao diện gồm JButton JList có cuộn Hoạt động: Chương trình cho phép thêm xóa mục JList sau: + Khi người dùng nhấn nút “Add Philosopher” chương trình cửa sổ cho nhập tên hình bên dưới, nhấn nút OK thêm vào JList, ý trường hợp nhập tên để trống Trang 31/39 Bài tập thực hành Java – Module + Khi người dùng nhấn nút “Remove Selected Philosopher” chương trình xóa mục chọn JList, trước xóa phải hỏi xác nhận lại, khơng chọn mục để xóa phải thơng báo Thêm vào chương trình menu Bài Thiết kế giao diện hình sau: Yêu cầu xử lý: + Khi nhấn nút “Add Item” thêm nội dung ô nhập vào JList, cảnh báo người dùng trường hợp để trống ô nhập nhập trùng liệu có + Khi nhấn nút “Remove Item” cho phép xóa dịng chọn JList, trước xóa phải hỏi xác nhận lại, cảnh báo người dùng trường hợp khơng chọn mà xóa + Khi nhấn chọn dịng JList nội dung dịng lên ô nhập liệu + Khi nhấn nút “Edit Item” cho phép sửa nội dung dịng chọn thành nội dung ô nhập liệu Bài (i) Viết lớp HinhChuNhat để tính chu vi diện tích, có hàm toString() trả chuỗi chứa thông tin chiều dài, chiều rộng, chu vi, diện tích (mỗi cột cách khoảng trắng) (ii) Thiết kế giao diện hình sau: Trang 32/39 Bài tập thực hành Java – Module Yêu cầu xử lý: + Nút “Tính”: xuất kết tính chu vi diện tích, ý phải thơng báo lỗi khi: - Không nhập đủ liệu - Dữ liệu nhập số - Dữ liệu nhập số âm + Nút “Thêm”: thêm dòng vào JList với thơng tin hình Kiểm tra liệu nút Tính + Nút “Xóa”: xóa dịng chọn JList, yêu cầu chọn trước xóa hỏi xác nhận trước xóa + Khi chọn dịng JList thơng tin dịng lên nhập liệu (xem hình) Bài 10 (i) Viết lớp ChiPhi với yêu cầu: + Thuộc tính: loại phí (String), tiền (double) + Viết hàm khởi tạo + Viết hàm get/set + Hàm toString(): trả chuỗi chứa thơng tin loại phí tiền (ii) Thiết kế giao diện hình đây: Trang 33/39 Bài tập thực hành Java – Module Yêu cầu xử lý sử dụng lớp ChiPhi: + Nút “Thêm”: thêm dịng vào JList bên với thơng tin tương ứng Loại phí Tiền (xem hình) Chú ý không thêm khi: - Không nhập đủ liệu - Ơ nhập tiền khơng phải số - Ô nhập tiền số âm + Nút “Xóa”: xóa dòng chọn JList, yêu cầu chọn trước xóa hỏi xác nhận trước xóa + Nút “Báo cáo”: xuất tổng chi phí + Khi chọn dịng JList thơng tin dịng lên nhập liệu + Nút “Thốt”: đóng chương trình Trang 34/39 Bài tập thực hành Java – Module 10 Module 10 Nội dung kiến thức thực hành: + JSlider + JSplitPane + JTable + JTree Bài Viết chương trình đổi màu panel dùng JSlider hình: Bài Thiết kế giao diện hình bên dưới: + Khi người dùng nhấn nút “Add Philosopher” chương trình cửa sổ cho nhập vào First Name, Last Name Years, sau đưa thông tin lên JTable + Khi người dùng nhấn nút “Remove Selected Philosopher” chương trình xóa mục chọn JTable, khơng chọn mục để xóa phải thơng báo, trước xóa phải hỏi xác nhận lại Trang 35/39 Bài tập thực hành Java – Module 10 Bài i Viết lớp NhanVien với yêu cầu sau: Thuộc tính: mã nhân viên (String), phân xưởng (String), số sản phẩm (int) Các hàm khởi tạo Các hàm get/set Hàm getChuan(): trả giá trị 300 phân xưởng A, lại trả 500 (chỉ có phân xưởng A, B, C, D) Hàm VuotChuan(): trả true số sản phẩm vượt chuẩn (chuẩn tùy theo phân xưởng), ngược lại trả false Hàm TinhLuong(): trả lương nhân viên, lương = số sản phẩm * đơn giá, số sản phẩm vượt chuẩn phần vượt tính đơn giá 30000, cịn lại tính đơn giá 20000 Hàm toString(): trả mã nhân viên ii Thiết kế giao diện hình bên Giao diện cho nhập mã nhân viên, số sản phẩm, chọn phân xưởng Yêu cầu ô Tiền lương định dạng hình Yêu cầu xử lý: + Khi người dùng chọn phân xưởng combobox Số sản phẩm chuẩn tương ứng + Nút “Tính lương”: xuất lương nhân viên nhập (xem hình) Yêu cầu kiểm tra liệu nhập + Nút “Thêm”: thêm nhân viên nhập vào JTable với cột hình Chú ý không thêm khi: - Không nhập đủ liệu - Số sản phẩm số Trang 36/39 Bài tập thực hành Java – Module 10 - Trùng mã nhân viên + Nút “Xóa”: xóa nhân viên chọn JTable Chú ý phải hỏi trước xóa khơng xóa chưa chọn dòng + Khi chọn dòng JTable thơng tin nhân viên lên nhập liệu (xem hình) + Khi người dùng nhấn nút “Sửa” chương trình sửa thơng tin nhân viên chọn vào JTable Chú ý không sửa khi: - Khơng có đủ liệu - Số SP khơng phải số - Trùng mã nhân viên Bài (i) Viết lớp SinhVien với yêu cầu sau: Thuộc tính: mã sinh viên (String), họ tên (String), mã lớp (String), điểm môn (double), điểm môn (double) Các hàm khởi tạo Các hàm get/set Hàm DiemTrungBinh(): trả điểm trung bình mơn học Hàm KetQua(): trả “Đậu” điểm trung bình >=5, ngược lại “Rớt” Hàm toString(): trả mã sinh viên (ii) Thiết kế giao diện hình bên Giao diện cho nhập mã sinh viên, họ tên, chọn mã lớp, nhập điểm môn 1, môn Yêu cầu xử lý: + Nút “Kết quả”: xuất điểm trung bình kết sinh viên nhập (xem hình) Chú ý nhập Điểm môn môn phải số + Nút “Thêm”: thêm sinh viên vào table với cột hình Chú ý khơng thêm khi: - Không nhập đủ liệu - Điểm môn môn số Trang 37/39 Bài tập thực hành Java – Module 10 - Trùng mã sinh viên + Nút “Xóa”: xóa sinh viên chọn table Chú ý phải hỏi trước xóa khơng xóa chưa chọn dịng + Khi chọn dịng table thơng tin sinh viên lên nhập liệu (xem hình) Bài Thiết kế giao diện thực hình bên dưới: Chương trình cho phép thêm nút nút anh em nút chọn người dùng nhấn nút “Add Child” “Add Sibling”, nút “Delete” xóa nút chọn Bài (i) Viết lớp SinhVien với yêu cầu sau: Thuộc tính: mã sinh viên (String), họ tên (String), giới tính (boolean), mã lớp (String) Các hàm khởi tạo Các hàm get/set Hàm toString(): trả chuỗi thông tin gồm: mã sinh viên – họ tên – giới tính (ii) Thiết kế giao diện hình bên dưới: Trang 38/39 Bài tập thực hành Java – Module 10 Yêu cầu giao diện: Trên JTree có sẵn nút gốc “DS lop” nút mã lớp: NCTH2A, NCTH2B, NCTH2C, NCTH2K Yêu cầu xử lý: + Nút “Thêm”: thêm sinh viên vào lớp chọn JTree (xem hình) Chú ý không thêm khi: - Không nhập đủ liệu - Không chọn mã lớp JTree - Trùng mã sinh viên + Nút “Xóa”: xóa sinh viên chọn JTree Chú ý phải hỏi trước xóa khơng xóa khi: - Khơng chọn nút muốn xóa - Chọn vào nút gốc nút mã lớp + Khi chọn nút sinh viên thơng tin sinh viên lên nhập liệu (xem hình) Trang 39/39 ... Trang 34/39 Bài tập thực hành Java – Module 10 Module 10 Nội dung kiến thức thực hành: + JSlider + JSplitPane + JTable + JTree Bài Viết chương trình đổi màu panel dùng JSlider hình: Bài Thiết kế... args){new frmLogin();} } Trang 29/39 Bài tập thực hành Java – Module Module Nội dung kiến thức thực hành: + JCheckBox, JRadioButton + JComboBox, Jlist + Menu Bài Thiết kế giao diện sau: Hoạt động:... viên nhập vào JTable với cột hình Chú ý không thêm khi: - Không nhập đủ liệu - Số sản phẩm số Trang 36/39 Bài tập thực hành Java – Module 10 - Trùng mã nhân viên + Nút “Xóa”: xóa nhân viên chọn

Ngày đăng: 13/05/2014, 10:48

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan