【发布时间】:2014-09-09 14:12:13
【问题描述】:
- 我的菜单项正在通过数据库添加。
- 如果用户选择特定的菜单项,我必须执行诸如打开新的 jframe 之类的操作。
- 这里将菜单维度添加到 Menubar ,并在其下添加各种菜单项,例如 Period , Entity ,它们正在从数据库中获取。
-
现在我想通过点击 Period menuitem 打开一个新的 jframe。
public void MenuExp(){ JMenu DimensionMenu = new JMenu("Dimension"); JMenu editMenu = new JMenu("Help"); jMenuBar1.add(DimensionMenu); jMenuBar1.add(editMenu); //JMenuItem newAction = new JMenuItem("Account"); //fileMenu.add(newAction); //JMenuItem newPeriod = new JMenuItem("Period"); //fileMenu.add(newPeriod); try{ Class.forName("oracle.jdbc.OracleDriver"); Connection comm = (Connection)DriverManager.getConnection("jdbc:oracle:thin:@192.168.100.25:1521:orcl","SYSTEM","Admin123"); Statement st = comm.createStatement(); String Query = "select OBJECT_NAME from RAHUL_APP1.HSP_OBJECT where OBJECT_TYPE = 2 AND OBJECT_ID <> 30" ; //and User_Name ='" + jTextField1.getText()+"'"; ResultSet rs = st.executeQuery(Query); while(rs.next()){ JMenuItem newAction = new JMenuItem(rs.getString(1)); DimensionMenu.add(newAction); rs.close(); st.close(); comm.close(); newAction.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ System.out.println("You have clicked on the Account"); } }); } } catch(Exception e){ JOptionPane.showMessageDialog(this,e); } }
【问题讨论】:
-
我的菜单项正在通过数据库添加 为什么?它是一种“自定义菜单”的功能吗?另一方面,您可以为每个菜单项存储一个唯一的操作命令,并将其设置回菜单项,就像您设置其文本一样。然后创建一个通用动作侦听器,根据源的动作命令执行不同的动作,并将其附加到每个菜单项。这可能就足够了,但感觉有点脏。
-
是的,它是自定义菜单,因为应用程序会连接到各种表格,每次表格改变菜单都会改变
标签: java swing jtable jmenuitem