1. Giới thiệu chung
lớp, sự kế thừa và giao diện. API cho lập trỡnh độ hoạ bao gồm một tập rất nhiều lớp nhằm trợ giỳp xõy dựng cỏc thành phần giao diện khỏc nhau như: cửa sổ,nỳt ấn, ụ văn bản, menu, hộp kiểm, v.v. Mối quan hệ kế thừa giữa cỏc thành phần này được mụ tả trong hỡnh sau:
1 Componient Đõy là lớp (trừu tượng) cha của mọi lớp giao diện người dựng. Lớp này cung cấp cỏc thuộc tớnh, hành vi cơ bản nhất của tất cả cỏc thành phần giao diện.
2 Container Là một vật chứa dựng để ghộp nhúm cỏc thành phần giao diện khỏc. Mỗi vật chứa cú một lớp quản lý hiển thị, lớp quản lý hiển thị cú trỏch nhiệm bố trớ cỏch thức hiển thị cỏc thành phần bờn trong. Hai vật chứa hay được sử dụng nhất la JFrame và JPanel.
3 Jcomponient Là lớp cha của mọi thành phần Swing ligth weight, được vẽ trực tiếp lờn canvas bằng mó lệnh Java.
4 Window Được sử dụng để tạo ra một cửa sổ, Thụng thường ta hay sử dụng hai lớp con của nú là JFrame và JDialog.
5 JFrame là cửa sổ khụng lồng bờn trong cửa sổ khỏc. 6 JDialog là một cửa sổ được hiển thị dưới dạng modal. 7 JAplet là lớp cha của mọi lớp ứng dụng aplet.
8 JPanel là một vật chứa, lưu giữ cỏc thành phần giao diện người dựng.
9 Graphics là lớp trừu tượng cung cấp ngữ cảnh đồ hoạ để vẽ cỏc đối tượng đồ hoạ như: Đường thẳng, đường trũn, hỡnh ảnh…
10 Color lớp này biểu diễn một mầu sắc. 11 Font lớp này biểu thị cho một font đồ hoạ.
12 FontMetrics là một lớp trừu tượng dựng để xỏc định cỏc thuộc tớnh của Font.
Tất cả cỏc thành phần đồ hoạ trong thư viện Swing được nhúm trong gúi javax.swing. Đa số cỏc thành phần trong thư viện Swing đều cú tiếp đầu ngữ là ‘J’, Vớ dụ một nỳt lệnh trong thư viện Swing cú tờn là JButton, một memu cú tờn là
JMenu.
Tất cả những lớp khỏc được liệt kờ trong hỡnh dưới đõy
Chỳ ý: Đừng pha trộn cỏc thành phần giao diện swing và awt trong cựng một ứng
dụng. Chẳng hạn như đừng nờn đặt một JButton vào một Panel và đừng nờn đặt Button vào JPanel. Việc làm này cú thể gõy lỗi.
Một lớp được kế thừa từ lớp JComponent được thể hiện trong hỡnh sau:
2. Một số phương thức của lớp Component
Lớp Component cung cấp cỏc thuộc tớnh, phương thức chung cho cỏc lớp con của nú. Sau đõy là một số phương thức của lớp Component :
- Dimension getSize():cho lại đối tượng thuộc lớp Dimension gồm width (chiều rộng), height (chiều cao) xỏc định kớch thước của một thành phần tớnh theo pixel. - void setSize(int width, int height) và void setSize(Dimension d) đặt lại kớch thước của thành phần.
- Point getLocation(): cho lại tọa độ (kiểu Point) trờn cựng bờn trỏi (tọa độ gốc)
của thành phần đang xột.
- void setLocation(int x, int y) và void setLocation(Point p) đặt lại cỏc tọa độ được
chỉ định cho một thành phần.
tọa độ gốc và chiều dài, chiều rộng của hỡnh chữ nhật.
- void setBounds(int x, int y) và void setBounds(Rectangle r):đặt lại đường biờn cho một thành phần.
- void setForeground(Color c):được sử dụng để đặt màu vẽ cho thành phần đồ họa - void setBackground(Color c):đặt màu nền cho thành phần đồ họa. Cỏc tham số
của hai hàm này là đối tượng của lớp Color sẽ được giới thiệu ở phần sau.
- Font getFont(): được sử dụng để biết được font của cỏc chữ đang xử lý trong thành phần đồ họa.
- void setFont(Font f):đặt lại font chữ cho một thành phần.
- void setEnabled(boolean b):Nếu đối số b của hàm getEnabled() là true thỡ thành
phần đang xột hoạt động bỡnh thường, nghĩa là cú khả năng kớch hoạt (enable), cú thể trả lời cỏc yờu cầu của người sử dụng và sinh ra cỏc sự kiện như mong muốn. Ngược lại, nếu là false thỡ thành phần tương ứng sẽ khụng kớch hoạt được, nghĩa là khụng thể trả lời được cỏc yờu cầu của người sử dụng.
- Lưu ý: Tất cả cỏc thành phần giao diện khi khởi tạo đều được kớch hoạt
- void setVisible(boolean b):Một thành phần đồ họa cú thể được hiển thị lờn màn
hỡnh (nhỡn thấy được) hoặc bị che giấu tựy thuộc vào đối số của hàm setVisible() là true hay false.
3. Lớp Container
Lớp Container là lớp con của lớp trừu tượng Component. Cỏc lớp chứa (lớp con của Container) cung cấp tất cả cỏc chức năng để xõy dựng cỏc giao diện đồ họa ứng dụng, trong đú cú phương thức add() được nạp chồng dựng để bổ sung một thành phần vào vật chứa và phương thức remove() cũng được nạp chồng để gỡ bỏ một thành phần ra khỏi vật chứa.
4. Tạo ra Frame
được sử dụng để tạo ra những cửa sổ cho cỏc giao diện ứng dụng GUI. Kịch bản chung để tạo ra một cửa sổ là:
1. Tạo ra một frame cú tiờu đề gỡ đú, vớ dụ “My Frame” : JFrame myWindow= new JFrame(“My Frame”);
2. Xõy dựng một cấu trỳc phõn cấp cỏc thành phần bằng cỏch sử dụng hàm myWindow.getContentPane().add() để bổ sung thờm JPanel hoặc những thành phần giao diện khỏc vào Frame:
Vớ dụ: myWindow.getContentPane().add(new JButton(“OK”));// Đưa vào một nỳt (JButton) cú tờn “OK” vào frame
3. Đặt lại kớch thước cho frame sử dụng hàm setSize():
myWindow.setSize(200, 300);// Đặt lại khung frame là 200 ( 300 4. Gúi khung frame đú lại bằng hàm pack():
myWindow.pack(); 5. Cho hiện frame:
myWindow.setVisible(true);