菜單的組成:
- 菜單條JMenubar
- 菜單JMenu
- 菜單項JMenultem
- 菜單項上的事件
- 菜單事件
菜單分類:
- 下拉式菜單
- 彈出菜單
創建菜單的基本操作
創建菜單條(JMenuBar),並將其放在JFrame中
- JFrame jf = new JFrame();
- JMenuBar bar = new JMenuBar(); //創建一個空的菜單條
- jf.setJMenuBar(bar);
創建若干個JMenu對象(JMenu):
- JMenu menu = new JMenu(“文件”);
創建若干個JMenuItem對象並將其添加到JMenu對象中
- JMenuItem newf = new JMenuItem(“新建”);
- JMenuItem open = new JMenuItem(“打開”);
- menu.add(newf);
- menu.add(open);
把JMenu對象添加到JMenuBar對象中:
- bar.add(menu);
其他設定
添加分隔線:
- JMenu menu = new JMenu(“File”);
- menu.addSeparator();
給菜單子項定義快捷鍵:
- JMenuItem newf = new JMenuItem(“新建(N)”);
- newf.setAccelerator(KeyStroke.getKeyStroke(“ctrl N”));
菜單事件處理
菜單(JMenu)添加監聽器
JMenu對象可添加MenuListener,以處理在點擊該菜單時各菜單項的狀態
- menu.addMenuListener(this);
接口方法有:
- public void menuSelected(MenuEvent evt);
- public void menuDeselected(MenuEvent evt);
- public void menuCanceled(MenuEvent evt);
菜單項(JMenuItem)添加監聽器:
- 與按鈕事件處理相同
- addActionListener(this)
- actionPerformed(ActionEvent evt)
彈出菜單(JPopupmenu)
構造方法:
- JPopupMenu popupMenu = new JPopupMenu();
採用與普通菜單相同的方法添加內容和監視器
顯示快捷菜單:
- popupMenu.show(Component,int x,int y);
//在指定組件的指定位置顯示出快捷菜單
使用方法:
需要給響應快捷菜單顯示的組件添加鼠標監聽器
addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent evt){
if(evt.isPopupTrigger()){
popupMenu.show(evt.getComponent(),evt.getX(),evt.getY());
}
}
});
工具條(JToolBar)
構造方法:
- JToolBar toolBar = new JToolBar();
其他方法:
- void add(組件對象);
- void addSeparator();
爲加入的組件添加提示信息:
- 組件對象.setToolTipText(String);
表格(JTable)
表格是一種以行/列(二維表)形式顯示和操作數據的組件,功能強大,常與數據庫結合使用
構造方法:
- JTable();
- JTable(int rows,int cols);
- JTable(Object[][],Object[]);
JTable(TableModel);
JTable(Vector,Vector);
創建簡單表格:
Object[] cols = {"姓名","班級","成績"};
Object[][] rows = {
{"張三","計科1","new Integer(75)"},
{"李四","網工2","new Integer(85)"},
{"王二","電子3","new Integer(90)"},
};
JTable table = new JTable(rows,cols);
table.setShowGrid(true);
table.setGridColor(Color);
table.setRowHeight(int);
使用DefaultTableModel創建表格:
Object[] cols = {"姓名","班級","成績"};
Object[][] rows = {
{"張三","計科1","new Integer(75)"},
{"李四","網工2","new Integer(85)"},
};
DefaultTableModel model = new DefaultTableModel(rows,cols);
JTable table = new JTable(model);
model.addColumn(Object);
model.addRow(Object[]);
model.removeRow(int);
model.setValueAt(Object,int row,int col);
int rown = model.getRowCount();
int coln = model.getColumnCount();
String colname = model.getColumnName(int);