你这样做,在窗体中点鼠标右键就有弹出菜单了
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class color1
extends JFrame {
int x;
int y; JMenuBar jmb = new JMenuBar();
JMenu jm1 = new JMenu("File");
JMenu jm2 = new JMenu("View");
JMenuItem jmi1 = new JMenuItem("Exit");
JRadioButton jmi2 = new JRadioButton("red");
JRadioButton jmi3 = new JRadioButton("green");
JRadioButton jmi4 = new JRadioButton("blue");
ButtonGroup bg = new ButtonGroup();
JPopupMenu jpm = new JPopupMenu();
JMenuItem ji = new JMenuItem("cut");
public color1() {
this.setJMenuBar(jmb);
jmb.add(jm1);
jmb.add(jm2);
jm1.add(jmi1);
jm2.add(jmi2);
jm2.add(jmi3);
jm2.add(jmi4);
bg.add(jmi2);
bg.add(jmi3);
bg.add(jmi4);
jpm.add(ji);
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
if (evt.isPopupTrigger()) {
jpm.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
}); jmi1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}); this.setSize(400, 450);
this.setVisible(true);
} public static void main(String[] agrs) {
color1 c = new color1();
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class color1
extends JFrame {
int x;
int y; JMenuBar jmb = new JMenuBar();
JMenu jm1 = new JMenu("File");
JMenu jm2 = new JMenu("View");
JMenuItem jmi1 = new JMenuItem("Exit");
JRadioButton jmi2 = new JRadioButton("red");
JRadioButton jmi3 = new JRadioButton("green");
JRadioButton jmi4 = new JRadioButton("blue");
ButtonGroup bg = new ButtonGroup();
JPopupMenu jpm = new JPopupMenu();
JMenuItem ji = new JMenuItem("cut");
public color1() {
this.setJMenuBar(jmb);
jmb.add(jm1);
jmb.add(jm2);
jm1.add(jmi1);
jm2.add(jmi2);
jm2.add(jmi3);
jm2.add(jmi4);
bg.add(jmi2);
bg.add(jmi3);
bg.add(jmi4);
jpm.add(ji);
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
if (evt.isPopupTrigger()) {
jpm.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
}); jmi1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}); this.setSize(400, 450);
this.setVisible(true);
} public static void main(String[] agrs) {
color1 c = new color1();
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
解决方案 »
- oa的计划任务管理有哪些功能,有哪些界面设计的思路,大家提点意见呀???
- 随即生成中文词组
- JSP的 HTTP status 500- 错误
- 请教一个IREPORT报表的问题
- 请教JCheckBoxMenuItem事件处理?急!
- 一个没有解决的问题
- IO问题
- 给个“hello world"的例子程序
- 谁能给讲解一下GridBagLayout的用法(API没看懂)
- 我在autoexec.bat中设置set classpath=c:\jdk1.3,是不是.java文件都必须在c:\jdk1.3下编辑和编译并且运行?
- 一个运行错误:Exception in "thread" main java.long.NoClassDefFoundError: URShift.
- 关于GUI设计中,数据传递问题~~~~
再问一下,这个菜单只能注册在最底下那层吗?我注册在mypanel上为什么就不行呢.
在需要弹菜单的对象上做add(ji)就可以了
比如List.add(ji)或Panel.add(ji)
你把菜单做到内部类里没办法加载
this.addMouseListener(new java.awt.event.MouseAdapter()
把这个this改成你的对象就行了,this默认情况下表示当前的Frame
底层的背景色这样设置
this.getContentPane().setBackground(Color.BLUE);如果是面板就这样
jPanel1.setBackground(Color.RED);如果要自定义颜色如下:
jPanel1.setBackground(new Color(144, 39, 175));
三个数字分别代表红绿蓝的深度值