如何将ActionListener添加到JMenuItem?

时间:2013-05-02 03:11:08

标签: java eclipse swing actionlistener jmenuitem

我正在尝试在我的java菜单中将ActionListener添加到JMenuItem。

以下是菜单的屏幕截图:

enter image description here

我想将ActionListener添加到“Rectangle”JMenuItem,以便在单击“矩形”菜单项时显示矩形形状。我多次尝试添加ActionListener,但每次都失败。

这是我的代码:

班级“menubar.java”:

import javax.swing.*;

public class menubar extends JFrame{

public menubar(){
    JMenuBar menubar = new JMenuBar();
    setJMenuBar(menubar);

    JMenu shape = new JMenu("Shape");
    menubar.add(shape);

    JMenuItem rect = new JMenuItem("Rectangle");
    shape.add(rect);

    JMenuItem star = new JMenuItem("Star");
    shape.add(star);

    JMenu color = new JMenu("Color");
    menubar.add(color);

    JMenuItem black = new JMenuItem("Black");
    color.add(black);

    JMenuItem orange = new JMenuItem("Orange");
    color.add(orange);
}

public static void main(String[] args) {
    menubar gui = new menubar();
    gui.setTitle("Menu Bar");
    gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    shapes SPS = new shapes();
    gui.add(SPS);
    gui.setSize(500,300);
    gui.setVisible(true);
    gui.setLocationRelativeTo(null);
}
}

类“shapes.java”:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class shapes extends JPanel{
int midX = 220;
int midY = 90;
int radius[] = {60,20,50,20};
int nPoints = 16;
int[] X = new int[nPoints];
int[] Y = new int[nPoints];

public void paintComponent(Graphics gphcs){
super.paintComponent(gphcs);
this.setBackground(Color.WHITE);

gphcs.setColor(Color.BLUE);
gphcs.fillRect(20,35,100,30);

gphcs.setColor(Color.RED);
gphcs.drawString("Welcome to Java", 20, 20);

for (int i=0; i < nPoints; i++) {
       double x = Math.cos(i * ((2 * Math.PI) / nPoints)) * radius[i % 4];
       double y = Math.sin(i * ((2 * Math.PI) / nPoints)) * radius[i % 4];

       X[i] = (int) x + midX;
       Y[i] = (int) y + midY;
}
gphcs.setColor(Color.GREEN);
gphcs.fillPolygon(X, Y, nPoints);
}
}

如果有人帮我解决这个问题,我将非常感激。

谢谢你的时间..

1 个答案:

答案 0 :(得分:-1)

可以将ActionListener添加到容器的一种方法是:

  
    

public class JMenuClass extends JFrame实现了ActionListener

  

然后,对于你需要一个监听器的每个JMenuItem,你会做

  
    

item.addActionListener(本)

  

在课程的底部,您需要添加actionPerformed方法,或者您想要实现它。

干杯