LẬP TRÌNH JAVA CSDL
BÀI 3
COMPONENTS
Nguyễn Hữu Thể
1
Nội dung
JList
JTable
JMenu
JOptionPane
JFileChooser
2
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
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
12
the setDataVector method.
JTable
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 convertToVector(Object[] anArray)
Vector Returns a vector that contains the same objects as the array.
13
JTable
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 convertToVector(Object[] anArray)
Vector Returns a vector that contains the same objects as the array.
14
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