JAVA Swing 如何监听JMenuItem下拉菜单,实现相应功能?
我正在做一个学生信息管理系统,这是其中的一个菜单代码:publicclassMainGUIextendsJFrameimplementsActionListener{pu...
我正在做一个学生信息管理系统,这是其中的一个菜单代码:
public class MainGUI extends JFrame implements ActionListener{
public MainGUI(){
super("学生信息管理系统");
JMenu backMenu = new JMenu("返回主界面(B)");
backMenu.setMnemonic(KeyEvent.VK_B);
JMenu informationManage= new JMenu("学生信息管理(M)");
informationManage.setMnemonic(KeyEvent.VK_M);
JMenuItem veiwMenuItem = new JMenuItem("信息游览(V) ");
veiwMenuItem.setAccelerator(KeyStroke.getKeyStroke('V',Event.CTRL_MASK));
informationManage.add(veiwMenuItem);
JMenuItem inputMenuItem = new JMenuItem("信息录入(I) ");
inputMenuItem.setAccelerator(KeyStroke.getKeyStroke('I',Event.CTRL_MASK));
informationManage.add(inputMenuItem);
JMenuItem searchMenuItem = new JMenuItem("信息查询(S) ");
searchMenuItem.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK));
informationManage.add(searchMenuItem);
JMenuItem modifyMenuItem = new JMenuItem("信息修改(M) ");
modifyMenuItem.setAccelerator(KeyStroke.getKeyStroke('M',Event.CTRL_MASK));
informationManage.add(modifyMenuItem);
JMenuItem deleteMenuItem = new JMenuItem("信息删除(D) ");
deleteMenuItem.setAccelerator(KeyStroke.getKeyStroke('D',Event.CTRL_MASK));
informationManage.add(deleteMenuItem);
JMenuBar menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
menuBar.add(backMenu);
menuBar.add(informationManage);
现在我想监听JMenuItem veiwMenuItem,当我点击下拉菜单“信息游览”时,就把数据库里面相应的studentsInfomation显示到当前mainGUI的panel上,如何做到呢?两个问题:第一:如何监听JMenuItem veiwMenuItem? 第二个问题:如何实现将要游览的学生信息显示在当前的mainGUI的panel上,而不再重新调用一个新窗口出来显示信息? 展开
public class MainGUI extends JFrame implements ActionListener{
public MainGUI(){
super("学生信息管理系统");
JMenu backMenu = new JMenu("返回主界面(B)");
backMenu.setMnemonic(KeyEvent.VK_B);
JMenu informationManage= new JMenu("学生信息管理(M)");
informationManage.setMnemonic(KeyEvent.VK_M);
JMenuItem veiwMenuItem = new JMenuItem("信息游览(V) ");
veiwMenuItem.setAccelerator(KeyStroke.getKeyStroke('V',Event.CTRL_MASK));
informationManage.add(veiwMenuItem);
JMenuItem inputMenuItem = new JMenuItem("信息录入(I) ");
inputMenuItem.setAccelerator(KeyStroke.getKeyStroke('I',Event.CTRL_MASK));
informationManage.add(inputMenuItem);
JMenuItem searchMenuItem = new JMenuItem("信息查询(S) ");
searchMenuItem.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK));
informationManage.add(searchMenuItem);
JMenuItem modifyMenuItem = new JMenuItem("信息修改(M) ");
modifyMenuItem.setAccelerator(KeyStroke.getKeyStroke('M',Event.CTRL_MASK));
informationManage.add(modifyMenuItem);
JMenuItem deleteMenuItem = new JMenuItem("信息删除(D) ");
deleteMenuItem.setAccelerator(KeyStroke.getKeyStroke('D',Event.CTRL_MASK));
informationManage.add(deleteMenuItem);
JMenuBar menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
menuBar.add(backMenu);
menuBar.add(informationManage);
现在我想监听JMenuItem veiwMenuItem,当我点击下拉菜单“信息游览”时,就把数据库里面相应的studentsInfomation显示到当前mainGUI的panel上,如何做到呢?两个问题:第一:如何监听JMenuItem veiwMenuItem? 第二个问题:如何实现将要游览的学生信息显示在当前的mainGUI的panel上,而不再重新调用一个新窗口出来显示信息? 展开
展开全部
第一个问题:使用veiwMenuItem.addActionListener()方法添加监听器。具体使用可以查看JDK API
第二个问题,一时想到两种实现方法
1、你要知道,JPanel不单是一个组件,更是一个组件容器,所以你可以往其中添加一个表格组件,而这个表格组件则将你的查询结果显示出来
2、如果你不希望使用其他组件了的话,倒也可以重载paint()方法,直接将你要显示的信息“绘”出来。例如:
public class DisplayPanel extends JPanel{
public void pain(Graphics g){
super.paint(g);
g.drawString(student.getName());
g.drawString(student.getNumber());
.... ....
}
}
然后将这个Panel添加到你原来的位置即可。
第二个问题,一时想到两种实现方法
1、你要知道,JPanel不单是一个组件,更是一个组件容器,所以你可以往其中添加一个表格组件,而这个表格组件则将你的查询结果显示出来
2、如果你不希望使用其他组件了的话,倒也可以重载paint()方法,直接将你要显示的信息“绘”出来。例如:
public class DisplayPanel extends JPanel{
public void pain(Graphics g){
super.paint(g);
g.drawString(student.getName());
g.drawString(student.getNumber());
.... ....
}
}
然后将这个Panel添加到你原来的位置即可。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询