2012-11-17 62 views
1

我已經使用Jmenulist製作了JAVA代碼,並嘗試通過actionlistener調用它,但ActionListner不工作。儘管它在另一個code.bt中工作,但它在程序中創建了問題。JMenuItem ActionListener無法正常工作

import javax.swing.*; 
import java.awt.*; 
import java.io.*; 
import java.awt.event.*; 


public class Submit { 



public static void main(String[] args) 
{ 

JFrame frame = new JFrame(); 
JMenuBar menuBar = new JMenuBar(); 
JMenu fileMenu = new JMenu("Graph"); 


JMenuItem closeMenuItem = new JMenu("Close"); 
closeMenuItem.addActionListener(new Close()); 


fileMenu.add(closeMenuItem); 

menuBar.add(fileMenu); 

frame.setJMenuBar(menuBar); 

frame.setSize(500,500); 
frame.setVisible(true); 
} 


} 


class Close implements ActionListener { 
public void actionPerformed(ActionEvent ev) { 
    System.out.println("Selected: "); 

}} 

當我complie它

public void actionPerformed(ActionEvent ev) { 
    System.out.println("Selected: "); 

} 

本節不工作。雖然幾乎相同的代碼

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package in.ac.iiitd.cse201.rachit11084.hw3.q2; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 

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

class MenuActionListener implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
    System.out.println("Selected: " + e.getActionCommand()); 

    } 
} 

public class ContructMenuActionListener { 
    public static void main(final String args[]) { 
    JFrame frame = new JFrame("MenuSample Example"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JMenuBar menuBar = new JMenuBar(); 


    JMenu fileMenu = new JMenu("File"); 
    fileMenu.setMnemonic(KeyEvent.VK_F); 
    menuBar.add(fileMenu); 


    JMenuItem newMenuItem = new JMenuItem("New"); 
    newMenuItem.addActionListener(new MenuActionListener()); 
    fileMenu.add(newMenuItem); 

    frame.setJMenuBar(menuBar); 
    frame.setSize(350, 250); 
    frame.setVisible(true); 
    } 
} 

工作正常。 我應該如何解決這個問題?

謝謝。

+0

預期結果和發生了什麼?更詳細地描述問題 – alegen

回答

3

JMenuItem closeMenuItem = new JMenuItem("Close");

JMenuItem closeMenuItem = new JMenu("Close");

new JMenu創建新的子菜單,所以它不能有一個動作相關,但只提供子菜單項。

+0

偉大的解釋!謝謝!! – Rachit