JMenu和JMenuItem一样都有setIcon函数,用setIcon函数就可以设置图标.
为武鸣等地区用户提供了全套网页设计制作服务,及武鸣网站建设行业解决方案。主营业务为网站设计制作、网站设计、武鸣网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
例如:
JMenu file=new JMenu("文件");
ImageIcon logo=new ImageIcon("logo.gif"); //这里定义一个Icon图片
file.setIcon(logo); //这里设置Icon图片到JMenu
以windows系统中的记事本为例,菜单栏中的【文件】,【编辑】等全部叫一个菜单条;在Java中用JMenuBar表示;
菜单条中每一个具体的项叫做一个菜单,在Java中用JMenu表示;
菜单中的每一项叫做菜单项,Java中用JMenuItem表示;
我们在窗体中创建菜单栏,首先需要创建菜单条,先声明,然后在构造方法中初始化;代码为:JMenuBar bar = new JMenuBar();
然后创建菜单,也菜单条一样,也是先声明,再new;代码为:JMenu menu = new JMenu("文件");
接下来创建菜单项,和上面的一样,先声明,再new;代码为:JMenuItem item = new JMenuItem("新建");
创建好每一个部分之后,我们需要将菜单项添加到菜单中,然后将菜单添加到菜单条中;代码为:
menu.add(item);
bar.add(menu);
然后将整个菜单条添加到窗体中,代码为:
this.setJMenuBar(bar);
这样就可以实现在窗体中添加菜单条了,看一下效果吧。
JMenuBar menuBar = new JMenuBar();
JMenu file = new JMenu("文件"),
Icon new= new ImageIcon("res/new.png");
Icon save= new ImageIcon("res/save.png");
JMenuItem newItem = new JMenuItem("查看结果",new),
saveItem = new JMenuItem("随机数据",save);
这样 就行了 ,很简单。
试试这样行不?
public class Mazelp {/*extends JFrame*/ //implements ActionListener{
private static final int wid = 10;
private static final int hei = 10;
JFrame jf;
JButton jb1,jb2;
JButton jb[];
JPanel p1,p2;
private Stack stack = new Stack();//Stack 类表示后进先出(LIFO)的对象堆栈。
MenuBar menu;
Menu file;
MenuItem closeMenu;
public Mazelp() {
jf=new JFrame("迷宫");//申请内存空间设置标题
jf.setBounds(300,240,500,500); //调整迷宫出现的位置(300,240)及大小(500,500)
jf.setResizable(false);//窗体不可拉伸
menu = new MenuBar();//设置菜单条
file = new Menu("文件");//设置菜单栏
closeMenu = new MenuItem("关闭");//设置菜单项
//closeMenu.addActionListener(this);//添加监听对菜单项
p1=new JPanel();
//jf.add(menu);
jf.setMenuBar(menu);
menu.add(file);//将菜单栏添加到菜单条上
file.add(closeMenu);//将菜单项添加到菜单栏
jf.getContentPane().add(p1);
p1.setLayout(new GridLayout(10,10)); //p1用网格布局,10行10列
jb=new JButton[100];//作为迷宫的墙和路
for(int i=0;ijb.length;i++){
jb[i]=new JButton(Integer.toString(i));//创建按键的名字,Integer型的名字为i的字符串
if((i=0i=9)||(i=90i=99)||i%10==0||i%10==9||i==13||i==17||i==23||i==27||i==35||i==36||i==42||i==43||i==44||i==54||i==62||i==66||i==72||i==73||i==74||i==76||i==77||i==81){
jb[i].setBackground(Color.red);//将墙涂色
}
else {
jb[i].setBackground(Color.yellow);
}
jb[i].setSize(10,10);
p1.add(jb[i]);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE); //声明点“X”图标后结束窗体所在的应用程序
jf.setVisible(true); //表明以上创建的所有窗体、按键等组件都是可见
}
}
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);
}
}
不知道你要什么事件代码,我写了个比较简单的你看适合不。