大众信息网

关于java菜单监听的问题

关注:207  答案:2  手机版
解决时间 2021-04-04 21:49
这是我的代码
import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;
import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JTextField;import javax.swing.event.MenuEvent;
public class Menu extends JFrame { JMenu optionmenu,insertmenu,querymenu; JMenuBar jmb; JTextField t; Menu() { setLayout(new FlowLayout()); JFrame jf=new JFrame("菜单"); t=new JTextField(10); jmb=new JMenuBar(); optionmenu=new JMenu("菜单选项"); jmb.add(optionmenu); insertmenu=new JMenu("插入信息"); querymenu=new JMenu("修改信息"); optionmenu.add(insertmenu); optionmenu.add(querymenu); add(t); setJMenuBar(jmb); setVisible(true); setBounds(30, 40, 350, 150); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { // TODO Auto-generated method stub new Menu();
}
}

程序效果如图,我想点击“插入信息”文本框中出现数字之类的,就是不知道怎么写个菜单监听器,求大神帮我看下,应该怎么改啊



最佳答案
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextField;

public class Menu extends JFrame {
JMenu optionmenu;
JMenuItem insertmenu, querymenu;
JMenuBar jmb;
JTextField t;

Menu() {
setLayout(new FlowLayout());
JFrame jf = new JFrame("菜单");
t = new JTextField(10);
jmb = new JMenuBar();
optionmenu = new JMenu("菜单选项");
jmb.add(optionmenu);
insertmenu = new JMenuItem("插入信息");
// 菜单添加事件
insertmenu.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
Menu.this.t.setText("插入信息菜单");
System.out.println("aaa");
}
});

querymenu = new JMenuItem("修改信息");
// 菜单添加事件
querymenu.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
Menu.this.t.setText("修改信息菜单");
}
});
optionmenu.add(insertmenu);
optionmenu.add(querymenu);
add(t);
setJMenuBar(jmb);
setVisible(true);
setBounds(30, 40, 350, 150);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
new Menu();
}
}
全部回答
有些错误,主要是事件选择错误,和事件里面没有重新创建button。 import javax.swing.*; import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; public class menuevent extends jframe { private jpanel panel; public menuevent() { jmenubar jmenubar = new jmenubar(); jmenu jmenu = new jmenu("选项"); jmenuitem item1 = new jmenuitem("初级"); jmenuitem item2 = new jmenuitem("中级"); jmenuitem item3 = new jmenuitem("高级"); jmenu.add(item1); jmenu.addseparator(); jmenu.add(item2); jmenu.addseparator(); jmenu.add(item3); jmenubar.add(jmenu); this.setjmenubar(jmenubar); this.setdefaultcloseoperation(exit_on_close); this.setsize(500, 500); item1.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { initbuttons(10, 10); } }); item2.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { initbuttons(15, 15); } }); item3.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { initbuttons(20, 20); } }); item1.doclick(); } private void initbuttons(int rows, int cols) { if (panel != null) { this.remove(panel); } panel = new jpanel(); panel.setlayout(new gridlayout(rows, cols, 2, 2)); for (int i = 0; i < rows * cols; i++) { panel.add(new jbutton()); } this.add(panel, borderlayout.center); this.setvisible(true); } public static void main(string[] args) { new menuevent(); } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!