菜单的组成:
- 菜单条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);