既然是弹出是菜单 就最好要和鼠标事件关联到一起,这个是例子
创新互联建站是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,小程序设计,十余年建站对假山制作等多个领域,拥有丰富的网站维护经验。
在窗孔周点鼠标右键就弹出来了
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JPopupMenu;
public class A extends JFrame {
public A() {
JPopupMenu popup = new JPopupMenu();
JMenu openFile = new JMenu("打开");
JMenu closeFile = new JMenu("关闭");
popup.add(openFile);
popup.add(closeFile);
this.setBounds(30, 30, 300, 300);
setVisible(true);
MouseListener popupListener = new PopupListener(popup);
this.addMouseListener(popupListener);// 向主窗口注册监听器
}
class PopupListener extends MouseAdapter {
JPopupMenu popupMenu;
PopupListener(JPopupMenu popupMenu) {
this.popupMenu = popupMenu;
}
public void mousePressed(MouseEvent e) {
showPopupMenu(e);
}
public void mouseReleased(MouseEvent e) {
showPopupMenu(e);
}
private void showPopupMenu(MouseEvent e) {
if (e.isPopupTrigger()) {// 如果当前事件与鼠标事件相关,则弹出菜单
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}// 结束if
}// 结束showPopupMenu
}
public static void main(String[] args) {
A a = new A();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyMenu extends JFrame{
JMenuBar jmbar=new JMenuBar();
JMenu jmenu=new JMenu("颜色");
JMenuItem jmt1=new JMenuItem("红色"),
jmt2=new JMenuItem("黄色"),
jmt3=new JMenuItem("蓝色");
JPanel jp=new JPanel();
MyMenu(){
setTitle("菜单测试");
setSize(400,300);
setJMenuBar(jmbar);
jmbar.add(jmenu);
jmenu.add(jmt1);
jmenu.add(jmt2);
jmenu.add(jmt3);
add(jp);
jmt1.addActionListener(new MenuAction(this));
jmt2.addActionListener(new MenuAction(this));
jmt3.addActionListener(new MenuAction(this));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyMenu();
}
}
class MenuAction implements ActionListener{
MyMenu m;
MenuAction(MyMenu m){
this.m=m;
}
public void actionPerformed(ActionEvent e){
String color=e.getActionCommand();
if(color=="红色")m.jp.setBackground(Color.red);
else if(color=="黄色")m.jp.setBackground(Color.yellow);
else if(color=="蓝色")m.jp.setBackground(Color.blue);
}
}
不知道你要什么事件代码,我写了个比较简单的你看适合不。
代码缺一行:
。。。
authorTextArea.setPreferredSize(new Dimension(40, 80));
authorFrame.add(authorTextArea);
。。。
以上完了后,需要加一个
authorFrame.setVisible(true);
至于这个框的大小,你再调调哈,相互学习~,三年没做过了~