Bài giảng Lập trình cơ sở dữ liệu Java - Bài 3 tiếp tục cung cấp cho người học các kiến thức về Components. Nội dung chính được trình bày trong chương này gồm có: List JTable, JMenu, JOptionPane, JFileChooser. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 3JList
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
Trang 4JList
Initializing a List
list = new JList(data); //data has type Object[]
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SE LECTION);
Trang 5• getElementAt (int index)
• remove (int index)
• Elements()
• removeAllElements ()
5
Trang 7JTable
7
Trang 8JOptionPane
8
Trang 9JTable
DefaultTableModel
– addColumn (Object obj)
– addRow (Object obj)
– getColumnCount ()
– getRowCount ()
– getValueAt (int row, int col)
– setValueAt (Object obj, int row, int col)
9
Trang 11Object[][] cellData = {{ "1-1" , "1-2" }, { "2-1" , "2-2" }}; String[] columnNames = { "col1" , "col2" };
JTable table = new JTable(cellData, columnNames);
JFrame f = new JFrame();
Trang 12JTable
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
Trang 13JTable
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( Returns a vector that contains the same objects as the array Object [] anArray)
Trang 14JTable
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( Returns a vector that contains the same objects as the array Object [] anArray)
Trang 15JOptionPane
15
Trang 16JOptionPane
16
Trang 17JOptionPane
17
Trang 18JFileChooser
18
Trang 19JFileChooser
19
Trang 20JFileChooser
20
Trang 21JFileChooser
21
Trang 22Swing Menu
22
Trang 24//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
Trang 25Swing Menu
//a group of JMenuItems
menuItem = new JMenuItem( "A text-only menu item" ,
menu.add(menuItem);
ImageIcon icon = createImageIcon( "images/middle.gif" );
menuItem = new JMenuItem( "Both text and icon" , icon);
Trang 26Swing Menu
//a group of radio button menu items
menu.addSeparator();
ButtonGroup group = new ButtonGroup();
rbMenuItem = new JRadioButtonMenuItem( "A radio button menu item" );
Trang 28Swing Menu
//Build second menu in the menu bar
menu = new JMenu( "Another Menu" );
//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
Trang 29Swing 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);
/*** 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();
Trang 30Swing Menu
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI
javax.swing.SwingUtilities.invokeLater( new Runnable() {
public void run() {