intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng lập trình java - Bài 8

Chia sẻ: Nguyen Van Nam | Ngày: | Loại File: PDF | Số trang:27

111
lượt xem
34
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo bài giảng lập trình java - Lê Đình Thanh , bộ môn mạng và truyền thông máy tính , khoa công nghệ thông tin - Bài 08 Tạo giao diện đồ họa.Sau khi tạo xong phần giao diện của trang chủ, nhấp vào nút bắt đầu để liên kết đến trang thứ hai. Trong phần thực hành này bạn sẽ tạo các đoạn phim để tạo giao diện cho trang thứ hai.

Chủ đề:
Lưu

Nội dung Text: Bài giảng lập trình java - Bài 8

  1. Bài gi ng L P TRÌNH JAVA Lê ðình Thanh B môn M ng và Truy n thông Máy tính Khoa Công ngh Thông tin Trư ng ð i h c Công ngh , ðHQGHN 1 Lê ðình Thanh, T o giao di n ñ h a Bài 8 T o giao di n ñ h a 2 Lê ðình Thanh, T o giao di n ñ h a
  2. N i dung • Java Foundation Classes • Swing 3 Lê ðình Thanh, T o giao di n ñ h a Java Foundation Classes (JFC) 4 Lê ðình Thanh, T o giao di n ñ h a
  3. JFC • Các l p n n t ng c a Java (JFC) bao g m các l p thành ph n ñ xây d ng giao di n ngư i dùng, ñư c chia thành các nhóm sau: • Swing: các thành ph n như nút b m, h p ch n, h p so n th o, danh sách, cây, … ñ phát tri n giao di n ñ ha • Look-and-Feel: Tùy bi n theme Java 2D: ñ ñ h a 2 chi u • Internationalization: thay ñ i ngôn ng cho ngư i • dùng s d ng ngôn ng khác nhau • Accessibility: cung các các công ngh h tr truy c p khác như ñ c màn hình, … 5 Lê ðình Thanh, T o giao di n ñ h a Swing 6 Lê ðình Thanh, T o giao di n ñ h a
  4. Các bư c t o ng d ng swing import javax.swing.*; //Nh p các l p swing public class HelloWorldSwing { private static void main(String[] args) { //T o và thi t l p c a s /ñ i tư ng ch a. JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Thêm các thành ph n vào c a s . JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); //Thêm s ki n và mã x lý cho các thành ph n trên c a s //Hi n th c a s frame.pack(); frame.setVisible(true); } 7 } Lê ðình Thanh, T o giao di n ñ h a T o ng d ng swing b ng NetBeens T o và thi t l p c a s /ñ i tư ng ch a • • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 8 Lê ðình Thanh, T o giao di n ñ h a
  5. T o ng d ng swing b ng NetBeens 9 Lê ðình Thanh, T o giao di n ñ h a T o ng d ng swing b ng NetBeens 10 Lê ðình Thanh, T o giao di n ñ h a
  6. T o ng d ng swing b ng NetBeens 11 Lê ðình Thanh, T o giao di n ñ h a T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 12 Lê ðình Thanh, T o giao di n ñ h a
  7. T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 13 Lê ðình Thanh, T o giao di n ñ h a T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 14 Lê ðình Thanh, T o giao di n ñ h a
  8. T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 15 Lê ðình Thanh, T o giao di n ñ h a T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 16 Lê ðình Thanh, T o giao di n ñ h a
  9. T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 17 Lê ðình Thanh, T o giao di n ñ h a T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 18 Lê ðình Thanh, T o giao di n ñ h a
  10. T o ng d ng swing b ng NetBeens • T o và thi t l p c a s /ñ i tư ng ch a • Thêm các thành ph n vào c a s • Thêm s ki n và mã x lý cho các thành ph n trên c a s • Hi n th c a s 19 Lê ðình Thanh, T o giao di n ñ h a M t vài lưu ý • Có 03 lo i c a s là khung (JFrame) (c a s chính), h p tho i (JDialog) và JApplet (applet). Ch c năng chính c a c a s là ñ ch a các thành ph n giao di n khác • C a s không th ch a c a s khác (top-level) Các thành ph n khác mu n hi n th ñư c ph i • ñư c ñ t trên c a s • M t s thành ph n có th làm v t ch a, ví d m t toolbar ch a các button, textbox, … menu1 M t thành ph n (tr c a s ) ñư c ch a trong và • ch trong m t thành ph n khác menu2 • Quan h gi a các thành ph n trên m t giao di n t o thành m t cây Các thành ph n ñ u ñư c k th a t • JComponent 20 Lê ðình Thanh, T o giao di n ñ h a
  11. S d ng frame Frame là c a s chính. M t ng d ng GUI thư ng có ít • nh t m t frame. Frame có thanh tiêu ñ (title) và vi n (border) cùng m t s • nút thay ñ i kích thư c, ñóng c a s . M m trong vi n và dư i thanh tiêu ñ là vùng n i dung. Các ñ i tư ng giao di n như nút b m, ô văn b n, nút ch n, … ñư c ñ t vào vùng n i dung 21 Lê ðình Thanh, T o giao di n ñ h a Các thành ph n giao di n • M i thành ph n giao di n • ñư c ñ nh nghĩa b i m t l p • có các phương th c ñ thi t l p/ñ c giá tr các thu c tính • có các s ki n liên quan bàn phím, chu t Ghi chú: Các hàm x lý s ki n cho các ñi u khi n • ñư c thêm b ng cách kích chu t ph i vào ñi u khi n, ch n Events… r i ch n s ki n. 22 Lê ðình Thanh, T o giao di n ñ h a
  12. JLabel Ch c năng: Hi n th văn b n • Các phương th c chính • • setText(String t): ð t n i dung cho nhãn • String getText(): ð c n i dung nhãn 23 Lê ðình Thanh, T o giao di n ñ h a JTextField Ch c năng: Nh p m t dòng văn b n • Các phương th c chính • • setText(String t): ð t n i dung cho ô ch • String getText(): ð c n i dung ô ch • S ki n chính • keyReleased: nh phím • focusLost: h t focus 24 Lê ðình Thanh, T o giao di n ñ h a
  13. JPassword Ch c năng: Nh p m t kh u • Các phương th c chính • • char [] pwd.getPassword(): ð t n i dung password • S ki n chính • keyReleased: nh phím • focusLost: h t focus 25 Lê ðình Thanh, T o giao di n ñ h a JTextArea Ch c năng: Nh p nhi u dòng văn b n • Các phương th c chính • • setText(String): ð t n i dung văn b n • String getText(): ð c n i dung văn b n • setLineWrap(boolean): Cho phép hi n th m t dòng văn b n trên nhi u hàng (g p hàng) • setWrapStyleWord(boolean): Có ñư c b t khi g p hàng hay không • S ki n chính • keyReleased: nh phím 26 Lê ðình Thanh, T o giao di n ñ h a
  14. JTextPane Ch c năng: Hi n th n i dung văn b n có ñ nh d ng và cho • nh p nhi u dòng văn b n Ch a bên trong ñ i tư ng StyledDocument • • getStyledDocument(): tr l i ñ i tư ng StyledDocument ñư c ch a bên trong • StyledDocument • Ch a danh sách các styles • Ch a n i dung. N dung ñư c chia thành nhi u ño n, m i ño n áp d ng m t style •… 27 Lê ðình Thanh, T o giao di n ñ h a JTextPane • StyledDocument • … L y ki u m c ñ nh: • • Style kmd = StyleContext.getDefaultStyleContext(). getStyle(StyleContext.DEFAULT_STYLE); • Thêm ki u: • Style k1 = doc.addStyle("kieu1", kmc); • Style k2 = doc.addStyle("kieu2", k1); Xác ñ nh thu c tính t ng ki u: • • StyleConstants.setFontFamily(k1, "SansSerif"); • StyleConstants.setItalic(k1, true); • StyleConstants.setFontSize(k2, 30); • Chèn n i dung có ki u • doc.insertString(doc.getLength(), “Văn b n có ki u 1", doc.getStyle("kieu1")); • doc.insertString(doc.getLength(), “Văn b n có ki u 2", doc.getStyle("kieu2")); 28 Lê ðình Thanh, T o giao di n ñ h a
  15. JEditorPane Ch c năng: Hi n th n i dung m t tài li u HTML và cho • nh p nhi u dòng văn b n Phương th c: • • setText(String): ð t n i dung văn b n • String getText(): ð c n i dung văn b n • setPage(URL): Load tài li u HTML java.net.URL url = APPView.class.getResource("thu.html"); try { jEditorPane1.setPage(url); } catch (Exception e) { System.err.println("Attempted to read a bad URL: " + helpURL); } 29 Lê ðình Thanh, T o giao di n ñ h a JCheckBox Các phương th c chính • • boolean isSelected(): Ki m tra nút ñư c tích hay không • S ki n chính • mouseClicked: kích chu t, thay ñ i tr ng thái tích 30 Lê ðình Thanh, T o giao di n ñ h a
  16. JRadioButton C n t o nhóm cho các radio button ñ ch ñư c ch n m t • trong c nhóm • T o JGroupButton r i ñ t thu c tính groupButton cho JRadioButton Các phương th c chính • • boolean isSelected(): Ki m tra nút ñư c tích hay không • S ki n chính • mouseClicked: kích chu t, thay ñ i tr ng thái tích 31 Lê ðình Thanh, T o giao di n ñ h a JComboBox • Cho ch n m t ph n t trong danh sách th xu ng Các phương th c chính • • JComboBox(String []): T o ñ i tư ng combo v i danh sách các m c ch n trong String[] • setSelectedIndex(i): Ch n m c i • int getSelectedIndex(): Tr l i ch m c c a m c ñư c ch n • Object getSelectedValue(): Tr l i m c ñư c ch n • setEditable(boolean): Cho biên so n hay không • setModel(Model): ð t model • getModel(): L y model • S ki n chính 32 • actionPerformed: thay ñ i m c ch n Lê ðình Thanh, T o giao di n ñ h a
  17. JList • Cho m t ho c nhi u ph n t trong danh sách Các phương th c chính • JList(DefaultListModel): T o ñ i tư ng list v i danh sách các m c ch n trong model • setLayoutOrientation(JList.___): ð t hư ng s p x p danh sách • setVisibleRowCount(int): ð t s hàng nhìn th y • • setSelectedIndex(i): Ch n m c I • setSelectedIndices(int[]): Ch n các m c • setSelectionInterval(index, size): Ch n các m c liên t c trong kho ng ensureIndexIsVisible(i): ði u ch nh hi n th ñ m c I ñư c nhìn th y • setSelectionMode(ListSelectionModel.MODE): ð t ki u ch n các m c • int getSelectedIndex(): Tr v ch m c c a m c ñư c ch n • int[] getSelectedIndices(); Tr v ch m c c a các m c ñư c ch n • Object getSelectedValue(): Tr v giá tr c a m c ñư c ch n • Object[] getSelectedValues(): Tr v giá tr c a các m c ñư c ch n • • ListModel: • addElement(obj), add(index, obj): Thêm m c • remove(index): Xóa m c • S ki n chính actionPerformed: thay ñ i m c ch n • • mouseClicked: Kích chu t 33 Lê ðình Thanh, T o giao di n ñ h a JTable • Trình bày d li u theo b ng N i dung c a b ng ñư c qu n lý b i TableModel. TableModel bao • gm M t m ng String[] ch a tiêu ñ c a các c t • M t m ng Object[][] ch a các ñ i tư ng là n i dung c a các ô. S c t c a • m ng hai chi u này ph i b ng s c t (s ph n t c a m ng ch a tiêu ñ ) Các phương th c ñ l y s hàng, s c t, tên c t, ñ i tư ng m t ô, xác • ñ nh các ô có th biên t p ñư c ð t o b ng • • T o TableModel T o ñ i tư ng JTable s d ng TableModel ñã t o • • JTable t o hàng tiêu ñ v i s ô b ng s ph n t c a m ng tiêu ñ và l n lư t có các tiêu ñ c a m ng tiêu ñ • V i m i ph n t [i][j] trong m ng ñ i tư ng • JTable s d ng Renderer ñ hi n th ñ i tư ng t i ô (i, j) • JTable s d ng Editor ñ c p nh t ñ i tư ng 34 Lê ðình Thanh, T o giao di n ñ h a
  18. TableModel và JTable class MyTableModel extends AbstractTableModel { private String[] a = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian",}; private Object[][] data2 = { {"Kathy", "Smith", "Snowboarding", new Integer(5), new Boolean(false)}, {"John", "Doe", "Rowing", new Integer(3), new Boolean(true)}, {"Sue", "Black", "Knitting", new Integer(2), new Boolean(false)}, {"Jane", "White", “Speed reading", new Integer(20), new Boolean(true)}, {"Joe", "Brown", "Pool", new Integer(10), new Boolean(false)} }; … Renderer cho String Renderer cho Integer Renderer cho Boolean } Editor cho String Editor cho Integer Editor cho Boolean 35 Lê ðình Thanh, T o giao di n ñ h a Renderer và Editor m c ñ nh class MyTableModel extends AbstractTableModel { … public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } } JTable s s d ng các Renderer/Editor m c ñ nh cho t ng l p Renderer cho String Renderer cho Integer Renderer cho Boolean Editor cho String Editor cho Integer Editor cho Boolean 36 Lê ðình Thanh, T o giao di n ñ h a
  19. ð nh nghĩa và s d ng Renderer ð nh nghĩa DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setBackground(Color.red); ho c public class MyRenderer implements TableCellRenderer {} MyRenderer renderer = new MyRenderer(); renderer.set___(); S d ng cho t ng c t table.getColumnModel().getColumn(3).setCellRenderer(renderer); ho c cho c b ng table.setDefaultRenderer(Class.class, renderer); 37 Lê ðình Thanh, T o giao di n ñ h a Ví d s d ng Renderer DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setForeground(Color.red); table.getColumnModel().getColumn(1).setCellRenderer(re nderer); 38 Lê ðình Thanh, T o giao di n ñ h a
  20. Ví d s d ng Renderer table.setDefaultRenderer(Color.class, new ColorRenderer()); public class ColorRenderer extends JLabel implements TableCellRenderer { public ColorRenderer() { setOpaque(true); } public Component getTableCellRendererComponent( JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) { setBackground((Color)obj); return this; } 39 } Lê ðình Thanh, T o giao di n ñ h a ð nh nghĩa và s d ng Editor ð nh nghĩa DefaultTableCellEditor editor = new DefaultTableCellEditor(object); ho c public class MyEditor extends AbstractCellEditor implements TableCellEditor {} MyEditor editor = new MyEditor(); S d ng cho t ng c t table.getColumnModel().getColumn(3).setCellEditor(editor); ho c cho c b ng table.setDefaultEditor(Class.class, editor); 40 Lê ðình Thanh, T o giao di n ñ h a
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2