Bài giảng Lập trình JAVA CSDL - Bài 3: Components - Nguyễn Hữu Thể (Phần 2)

Bài giảng Lập trình JAVA CSDL - Bài 3: Components - Nguyễn Hữu Thể (Phần 2)

Nội dung

 JList

 JTable

 JMenu

 JOptionPane

 JFileChooser

pdf 30 trang phuongnguyen 8760
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình JAVA CSDL - Bài 3: Components - Nguyễn Hữu Thể (Phần 2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình JAVA CSDL - Bài 3: Components - Nguyễn Hữu Thể (Phần 2)

Bài giảng Lập trình JAVA CSDL - Bài 3: Components - Nguyễn Hữu Thể (Phần 2)
1 
LẬP TRÌNH JAVA CSDL 
BÀI 3 
COMPONENTS 
Nguyễn Hữu Thể 
2 
Nội dung 
 JList 
 JTable 
 JMenu 
 JOptionPane 
 JFileChooser 
JList 
Creating a Model 
There are three ways to create a list model: 
•DefaultListModel — everything is pretty much taken care of for you. 
The examples in this page use DefaultListModel. 
•AbstractListModel — you manage the data and invoke the "fire" 
methods. For this approach, you must subclass AbstractListModel and 
implement the getSize and getElementAt methods inherited from the 
ListModel interface. 
•ListModel — you manage everything. 
JList 
Initializing a List 
list = new JList(data); //data has type Object[] 
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SE
LECTION); 
list.setLayoutOrientation(JList.HORIZONTAL_WRAP); 
list.setVisibleRowCount(-1); 
... 
JScrollPane listScroller = new JScrollPane(list); 
listScroller.setPreferredSize(new Dimension(250, 80)); 
JList 
 DefaultListModel 
 Methods: 
• addElement (Object e) 
• get (int index) 
• getSize () 
• getElementAt (int index) 
• remove (int index) 
• Elements() 
• removeAllElements () 
5 
JList 
 Methods: 
– setModel (ListModel model), getModel () 
– getMaxSelectionIndex (), getMinSelectionIndex () 
– getSelectedIndex (), getSelectedIndices () 
– getSelectedValue (), getSelectedValues () 
 Events: 
– valueChanged 
6 
JTable 
7 
JOptionPane 
8 
JTable 
 DefaultTableModel 
– addColumn (Object obj) 
– addRow (Object obj) 
– getColumnCount () 
– getRowCount () 
– getValueAt (int row, int col) 
– setValueAt (Object obj, int row, int col) 
9 
JTable 
 Methods: 
– setModel (TableModel tm) 
– getModel () 
– getValueAt (int row, int col) 
– getRowCount () 
– getColumnCount () 
 Events: 
– mouseClicked 
10 
JTable 
package project; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
public class JTableComponent { 
 public static void main(String[] argv) throws Exception { 
 Object[][] cellData = {{ "1-1", "1-2" }, { "2-1", "2-2" }}; 
 String[] columnNames = { "col1", "col2" }; 
 JTable table = new JTable(cellData, columnNames); 
 JFrame f = new JFrame(); 
 f.setSize(300,300); 
 f.add(new JScrollPane(table)); 
 f.setVisible(true); 
 } 
} 
11 
JTable 
12 
DefaultTableModel() 
Constructs a default DefaultTableModel which is a table of zero columns and zero rows. 
DefaultTableModel(int rowCount, int columnCount) 
Constructs a DefaultTableModel with rowCount and columnCount of null object values. 
DefaultTableModel(Object[][] data, Object[] columnNames) 
Constructs a DefaultTableModel and initializes the table by passing data and columnNames to 
the setDataVector method. 
DefaultTableModel(Object[] columnNames, int rowCount) 
Constructs a DefaultTableModel with as many columns as there are elements in columnNames 
and rowCount of null object values. 
DefaultTableModel(Vector columnNames, int rowCount) 
Constructs a DefaultTableModel with as many columns as there are elements in columnNames 
and rowCount of null object values. 
DefaultTableModel(Vector data, Vector columnNames) 
Constructs a DefaultTableModel and initializes the table by passing data and columnNames to 
the setDataVector method. 
JTable 
13 
void addColumn(Object columnName) 
Adds a column to the model. 
void addColumn(Object columnName, Object[] columnData) 
Adds a column to the model. 
void addColumn(Object columnName, Vector columnData) 
Adds a column to the model. 
void addRow(Object[] rowData) 
Adds a row to the end of the model. 
void addRow(Vector rowData) 
Adds a row to the end of the model. 
protected 
static 
Vector 
convertToVector(Object[] anArray) 
Returns a vector that contains the same objects as the array. 
JTable 
14 
void addColumn(Object columnName) 
Adds a column to the model. 
void addColumn(Object columnName, Object[] columnData) 
Adds a column to the model. 
void addColumn(Object columnName, Vector columnData) 
Adds a column to the model. 
void addRow(Object[] rowData) 
Adds a row to the end of the model. 
void addRow(Vector rowData) 
Adds a row to the end of the model. 
protected 
static 
Vector 
convertToVector(Object[] anArray) 
Returns a vector that contains the same objects as the array. 
JOptionPane 
15 
JOptionPane 
16 
JOptionPane 
17 
JFileChooser 
18 
JFileChooser 
19 
JFileChooser 
20 
JFileChooser 
21 
Swing Menu 
22 
Swing Menu 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.JMenu; 
import javax.swing.JMenuItem; 
import javax.swing.JCheckBoxMenuItem; 
import javax.swing.JRadioButtonMenuItem; 
import javax.swing.ButtonGroup; 
import javax.swing.JMenuBar; 
import javax.swing.KeyStroke; 
import javax.swing.ImageIcon; 
import javax.swing.JPanel; 
import javax.swing.JTextArea; 
import javax.swing.JScrollPane; 
import javax.swing.JFrame; 
23 
Swing Menu 
public class MenuLookDemo { 
 JTextArea output; 
 JScrollPane scrollPane; 
 public JMenuBar createMenuBar() { 
 JMenuBar menuBar; 
 JMenu menu, submenu; 
 JMenuItem menuItem; 
 JRadioButtonMenuItem rbMenuItem; 
 JCheckBoxMenuItem cbMenuItem; 
 //Create the menu bar. 
 menuBar = new JMenuBar(); 
 //Build the first menu. 
 menu = new JMenu("A Menu"); 
 menu.setMnemonic(KeyEvent.VK_A); 
 menu.getAccessibleContext().setAccessibleDescription( 
 "The only menu in this program that has menu items"); 
 menuBar.add(menu); 
24 
Swing Menu 
 //a group of JMenuItems 
 menuItem = new JMenuItem("A text-only menu item", 
 KeyEvent.VK_T); 
 //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor 
instead 
 menuItem.setAccelerator(KeyStroke.getKeyStroke( 
 KeyEvent.VK_1, ActionEvent.ALT_MASK)); 
 menuItem.getAccessibleContext().setAccessibleDescription( 
 "This doesn't really do anything"); 
 menu.add(menuItem); 
 ImageIcon icon = createImageIcon("images/middle.gif"); 
 menuItem = new JMenuItem("Both text and icon", icon); 
 menuItem.setMnemonic(KeyEvent.VK_B); 
 menu.add(menuItem); 
 menuItem = new JMenuItem(icon); 
 menuItem.setMnemonic(KeyEvent.VK_D); 
 menu.add(menuItem); 
25 
Swing Menu 
 //a group of radio button menu items 
 menu.addSeparator(); 
 ButtonGroup group = new ButtonGroup(); 
 rbMenuItem = new JRadioButtonMenuItem("A radio button 
menu item"); 
 rbMenuItem.setSelected(true); 
 rbMenuItem.setMnemonic(KeyEvent.VK_R); 
 group.add(rbMenuItem); 
 menu.add(rbMenuItem); 
 rbMenuItem = new JRadioButtonMenuItem("Another one"); 
 rbMenuItem.setMnemonic(KeyEvent.VK_O); 
 group.add(rbMenuItem); 
 menu.add(rbMenuItem); 
26 
Swing Menu 
 //a group of check box menu items 
 menu.addSeparator(); 
 cbMenuItem = new JCheckBoxMenuItem("A check box menu item"); 
 cbMenuItem.setMnemonic(KeyEvent.VK_C); 
 menu.add(cbMenuItem); 
 cbMenuItem = new JCheckBoxMenuItem("Another one"); 
 cbMenuItem.setMnemonic(KeyEvent.VK_H); 
 menu.add(cbMenuItem); 
 //a submenu 
 menu.addSeparator(); 
 submenu = new JMenu("A submenu"); 
 submenu.setMnemonic(KeyEvent.VK_S); 
 menuItem = new JMenuItem("An item in the submenu"); 
 menuItem.setAccelerator(KeyStroke.getKeyStroke( 
 KeyEvent.VK_2, ActionEvent.ALT_MASK)); 
 submenu.add(menuItem); 
 menuItem = new JMenuItem("Another item"); 
 submenu.add(menuItem); 
 menu.add(submenu); 
27 
Swing Menu 
 //Build second menu in the menu bar. 
 menu = new JMenu("Another Menu"); 
 menu.setMnemonic(KeyEvent.VK_N); 
 menu.getAccessibleContext().setAccessibleDescription( 
 "This menu does nothing"); 
 menuBar.add(menu); 
 return menuBar; 
 } 
 public Container createContentPane() { 
 //Create the content-pane-to-be. 
 JPanel contentPane = new JPanel(new BorderLayout()); 
 contentPane.setOpaque(true); 
 //Create a scrolled text area. 
 output = new JTextArea(5, 30); 
 output.setEditable(false); 
 scrollPane = new JScrollPane(output); 
 //Add the text area to the content pane. 
 contentPane.add(scrollPane, BorderLayout.CENTER); 
 return contentPane; 
 } 
28 
Swing Menu 
 /** Returns an ImageIcon, or null if the path was invalid. */ 
 protected static ImageIcon createImageIcon(String path) { 
 java.net.URL imgURL = MenuLookDemo.class.getResource(path); 
 if (imgURL != null) { 
 return new ImageIcon(imgURL); 
 } else { 
 System.err.println("Couldn't find file: " + path); 
 return null; 
 } 
 } 
 /*** Create the GUI and show it. For thread safety, 
 * this method should be invoked from the 
 * event-dispatching thread. */ 
 private static void createAndShowGUI() { 
 //Create and set up the window. 
 JFrame frame = new JFrame("MenuLookDemo"); 
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 //Create and set up the content pane. 
 MenuLookDemo demo = new MenuLookDemo(); 
 frame.setJMenuBar(demo.createMenuBar()); 
 frame.setContentPane(demo.createContentPane()); 
 //Display the window. 
 frame.setSize(450, 260); 
 frame.setVisible(true); 
 } 
29 
Swing Menu 
 public static void main(String[] args) { 
 //Schedule a job for the event-dispatching thread: 
 //creating and showing this application's GUI. 
 javax.swing.SwingUtilities.invokeLater(new Runnable() { 
 public void run() { 
 createAndShowGUI(); 
 } 
 }); 
 } 
} 
30 

File đính kèm:

  • pdfbai_giang_lap_trinh_java_csdl_bai_3_components_nguyen_huu_th.pdf