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.
30 trang |
Chia sẻ: thanhle95 | Lượt xem: 484 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình Java cơ sở dữ liệu - Bài 3: Components - Nguyễn Hữu Thể, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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