Lập trình Java nâng cao - Chương 1: Lập trình giao diện

Sơ đồphân cấp lớp GUI

JFrames

LayoutManagers

Drawingon JPanels: Lines, Rectangles, Ovals, Arcs, Polygons

Event-Driven Programming: EventSource, Listener,

Listener Interface

Nút nhấn vàmenu

JCheckbBox vàJRadioButton

Các lớp văn bản vàJScrollBar

pdf110 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 3796 | Lượt tải: 2download
Tóm tắt nội dung Lập trình Java nâng cao - Chương 1: Lập trình giao diện, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
)
JRadioButton(String text, boolean selected)
JRadioButton(Icon icon)
JRadioButton(String text, Icon icon)
JRadioButton(String text, Icon icon, boolean selected)
Các thuộc tính JRadioButton
JRadioButton có tất cả các thuộc tính trong 
JButton. Ngoài ra, JRadioButton có thuộc tính:
selected
Gộp nhóm các Radio Button
ButtonGroup btg = new ButtonGroup();
btg.add(jrb1);
btg.add(jrb2);
Using Radio Buttons:
JRadioButton rb1 = new JRadioButton(“Chon”);
JRadioButton rb2 = new JRadioButton(“Khong chon”);
btg.add(rb1); btg.add(rb2);
if (rb1.isSelected()) { . . . }
JLabel
 Label dùng để hiển thị một chuỗi văn bản thông thường 
nhằm mô tả thêm thông tin cho các đối tượng khác.
 Các constructor của JLabel:
JLabel()
JLabel(String text)
JLabel(String text,int hAlignment)
JLabel(Icon icon)
JLabel(Icon icon, int hAlignment)
JLabel(String text,Icon icon,int hAlignment)
Các thuộc tính JLabel
 text
 icon
 horizontalAlignment
 verticalAlignment
Using Labels
JTextField
 Text field là ô nhập dữ liệu dạng văn bản trên 1 
dòng.
 Các constructor của JTextField:
JTextField()
JTextField(int columns)
Tạo một text field trống có số cột xác định.
JTextField(String text)
Tạo một text field với văn bản có sẵn.
JTextField(String text, int columns)
Tạo một text field với văn bản có sẵn và số cột xác định.
Các thuộc tính JTextField
 text
 horizontalAlignment
 editable
 columns
Các phương thức JTextField
 getText()
Trả về chuỗi ký tự trong text field. 
 setText(String text)
Đặt chuỗi ký tự trong text field.
 setEditable(boolean editable)
Cho phép hoặc vô hiệu hóa soạn thảo trong text field. Mặc 
định, editable là true. 
 setColumns(int)
Thiết lập số cột trong text field. Chiều dài của text field có thể 
thay đổi.
JTextArea
 TextArea là khung cho phép người sử dụng 
nhập vào nhiều dòng văn bản.
 Các constructor của JTextArea:
JTextArea()
JTextArea(String s)
JTextArea(int rows, int columns)
JTextArea(String s, int rows, int columns)
Các thuộc tính JTextArea
 text
 editable
 columns
 lineWrap
 wrapStyleWord
 rows
 lineCount
 tabSize
Sử dụng Text Area
Chương trình hiển thị 1 ảnh và 1 title trong 1 label, 
hiển thị văn bản trong text area.
DescriptionPanel
-jlblImage
-jlblTitle
-jtaTextDescription
+setImageIcon
+setTitle
+setTextDescription
+getMinimumSize
11 TextAreaDemo
JPanel JFrame
JComboBox
 Combo box là danh sách đơn giản các mục chọn. 
Cơ bản nó thực hiện chức năng giống như 1 list, 
nhưng chỉ có thể lấy 1 giá trị.
 Các constructor:
JComboBox()
tạo 1 combo box rỗng
JComboBox(Object[] stringItems)
tạo 1 combo box chứa các phần tử trong dãy
Các phương thức JComboBox
jcbo.addItem(Object item)
thêm 1 mục chọn vào JComboBox jcbo
jcbo.getItem()
jcbo.getItemAt(int index)
lấy 1 mục chọn từ JComboBox jcbo
jcbo.removeItemAt(int index)
loại 1 mục chọn khỏi JComboBox jcbo
Using Combo Box:
Sử dụng itemStateChanged Handler
Khi một lựa chọn được check hoặc uncheck,
itemStateChanged() cho ItemEvent và
actionPerformed() handler cho ActionEvent
sẽ được gọi.
public void itemStateChanged(ItemEvent e){ 
// Make sure the source is a combo box
if (e.getSource() instanceof JComboBox)
String s = (String)e.getItem();
}
JList
 List là một thành phần cơ bản thực hiện chức năng 
giống combo box, nhưng nó cho phép người sử dụng 
chọn một hoặc nhiều giá trị.
 Các constructor:
JList()
tạo 1 list rỗng.
JList(Object[] stringItems)
tạo 1 list chứa các phần tử trong dãy.
Các thuộc tính JList
 selectedIndex
 selectedIndices
 selectedValue
 selectedValues
 selectionMode
 visibleRowCount
Using Lists:
JScrollBar
 ScrollBar là một điều khiển cho phép người sử dụng 
chọn từ một dải các giá trị.
 Các constructor:
JScrollBar()
JScrollBar(int orientation)
JScrollBar(int orientation, int value,
int extent, int min, int max)
Các thuộc tính JScrollBar
 orientation: 1 - dọc, 0 - ngang
 maximum, minimum
 visibleAmount (extent): độ rộng của phần con chạy
 value: giá trị hiện thời của scroll bar
 blockIncrement: giá trị được cộng thêm khi kích hoạt 
vùng tăng.
 unitIncrement: giá trị được cộng thêm khi kích hoạt 
đầu tăng.
Các phương thức JScrollBar
 setBlockIncrement(int increment)
 setMaximum(int maximum)
 setMinimum
 setOrientation(int orientation)
 setUnitIncrement(int increment)
 setValue(int value)
 setVisibleAmount (extent): 
 getBlockIncrement()
 ...
Borders
 Bạn có thể thiết lập một border trên bất kỳ đối 
tượng nào của lớp JComponent, nhưng thường hữu 
ích khi thiết lập một titled border trên JPanel để
nhóm một tập các thành phần giao diện người sử dụng 
có liên quan.
 Using border:
Các phương thức tĩnh để tạo Borders
 createTitledBorder(String title)
 createLoweredBevelBorder()
 createRaisedBevelBorder()
 createLineBorder(Color color)
 createLineBorder(Color color, int thickness)
 createEtchedBorder()
 createEtchedBorder(Color highlight, 
Color shadow, boolean selected)
 createEmptyBorder()
 createMatteBorder(int top, int left, 
int bottom, int right, Icon tileIcon)
 createCompoundBorder(Border outsideBorder,
Border insideBorder)
Dialogs
 Có thể sử dụng lớp JOptionPane để tạo 4 loại 
dialog chuẩn:
– Message Dialog hiển thị một message và đợi người sử
dụng kích nút OK để đóng hộp thoại.
– Confirmation Dialog hiển thị câu hỏi và đề nghị người 
sử dụng trả lời, vd: OK hay Cancel
– Input Dialog hiển thị câu hỏi và nhận dữ liệu vào từ 1 text 
field, combo box hoặc list.
– Option Dialog hiển thị câu hỏi và nhận câu trả lời từ một 
tập các lựa chọn.
Tạo các Message Dialog
Sử dụng phương thức tĩnh trong lớp JOptionPane
showMessageDialog(Component parentComponent, 
Object message)
showMessageDialog(Component parentComponent, 
Object message,String title, int messageType)
showMessageDialog(Component parentComponent, 
Object message, String title, 
int messageType, Icon icon)
Tạo các Confirmation Dialog
Sử dụng phương thức tĩnh trong lớp JOptionPane
showConfirmDialog(Component parentComponent, 
Object message)
showConfirmDialog(Component parentComponent, 
Object message, String title, int optionType)
showConfirmDialog(Component parentComponent, 
Object message, String title, int optionType, 
[[int messageType], Icon icon])
Tạo các Option Dialog
Sử dụng phương thức tĩnh trong lớp JOptionPane
showOptionDialog(Component parentComponent, 
Object message, String title, int optionType, 
int messageType, Icon icon, Object[] options, 
Object initialValue)
Sử dụng các dialog:
Menus
 Java cung cấp một số lớp - JMenuBar, JMenu, 
JMenuItem, JCheckBoxMenuItem, và
JRadioButtonMenuItem - để thực thi menu trong 
một frame.
 Một JFrame hoặc JApplet có thể chứa một menu
bar trên đó có gắn các pull-down menu. Các menu
chứa các menu item để người dùng lựa chọn (hoặc 
bật/tắt). Menu bar có thể được xem như một cấu trúc để
hỗ trợ các menu.
Menu Demo
Lớp JMenuBar
Menu bar chứa các menu; menu bar chỉ có thể được 
thêm vào 1 frame. Đoạn code sau tạo và thêm một 
JMenuBar vào 1 frame:
JFrame f = new JFrame();
f.setSize(300, 200);
f.setVisible(true);
JMenuBar mb = new JMenuBar(); 
f.setJMenuBar(mb);
Lớp Menu
Bạn gắn các menu vào một JMenuBar. Đoạn code 
sau tạo 2 menu File và Help, và thêm chúng vào 
JMenuBar mb:
JMenu fileMenu = new JMenu("File", false);
JMenu helpMenu = new JMenu("Help", true);
mb.add(fileMenu);
mb.add(helpMenu);
Lớp JMenuItem
Đoạn code sau thêm các mục chọn (menu item) và các
separator trong menu fileMenu:
fileMenu.add(new JMenuItem("New"));
fileMenu.add(new JMenuItem("Open"));
fileMenu.addSeparator();
fileMenu.add(new JMenuItem("Print"));
fileMenu.addSeparator();
fileMenu.add(new JMenuItem("Exit"));
Submenus
Bạn có thể thêm các submenus vào các menu item. Đoạn 
code sau thêm các submenu “Unix”, “NT”, và “Win95” vào 
trong mục chọn “Software”.
JMenu softwareHelpSubMenu = new JMenu("Software");
JMenu hardwareHelpSubMenu = new JMenu("Hardware");
helpMenu.add(softwareHelpSubMenu);
helpMenu.add(hardwareHelpSubMenu);
softwareHelpSubMenu.add(new JMenuItem("Unix"));
softwareHelpSubMenu.add(new JMenuItem("NT"));
softwareHelpSubMenu.add(new JMenuItem("Win95"));
Submenu Demo
Sử dụng Menu
Tạo một giao diện thực hiện các phép toán số
học giữa 2 số Number1 và Number2. Giao diện 
chứa các nhãn và text field cho Number 1, 
Number 2, và Result (sử dụng như đối với 
JButton).
Bước 1: Tạo 1 subclass của lớp JFrame (được gọi 
là 1 SubFrame) để xác định cửa sổ mới làm việc 
gì. Ví dụ, tất cả các chương trình ứng dụng GUI mở
rộng JFrame và là các subclass của JFrame.
Tạo thêm Window - bước 1
Tạo thêm Window - bước 2
Bước 2: Tạo 1 instance của SubFrame trong ứng dụng 
hoặc trong applet.
Ví dụ:
SubFrame subFrame = new 
SubFrame("SubFrame Title");
Tạo thêm Window - bước 3
Bước 3: Tạo 1 JButton để kích hoạt subFrame.
add(new JButton("Activate SubFrame"));
Tạo thêm Window - bước 4
Bước 4: chồng phương thức actionPerformed() như sau:
public actionPerformed(ActionEvent e)
{ 
String actionCommand = e.getActionCommand();
if (e.target instanceof Button)
{ 
if ("Activate 
SubFrame".equals(actionCommand))
{ 
subFrame.setVisible(true);
}
}
}
Ví dụ: Tạo nhiều Window
Ví dụ tạo 1 main window có 1 text area trong scroll
pane, 1 button "Show Histogram". Khi người sử
dụng kích vào button, 1 cửa sổ mới xuất hiện để hiển 
thị biểu đồ cho biểu diễn tần số xuất hiện của các ký 
tự trong text area. 
JScrollPane
Scroll pane là một thành phần tự động hỗ trợ
cuộn cửa sổ mà không cần lập trình.
Using Scroll Pane: add một TextArea vào trong 
một Scroll pane
Cấu trúc Scroll Pane
Column headerCorner
Component
Row header
JViewport
Scrollable Component
Horizontal scroll bars
Vertical scroll bars
Corner
Component
Corner
Component
Corner
Component
JTabbedPane
Tabbed pane cung cấp một tập các tab loại trừ lẫn nhau 
để truy nhập nhiều thành phần.
Using Tabbed Pane:

File đính kèm:

  • pdfLập trình Java nâng cao - Chương 1_Lập trình giao diện.pdf
Tài liệu liên quan