1

Jmenulist を使用して Java コードを作成し、actionlistener で呼び出そうとしましたが、ActionListner が機能していません。別のコードで機能していますが、プログラムで問題が発生しています。

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: ");

}}

私がそれに従うとき

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);
  }
}

正常に動作しています。この問題を解決するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

3

JMenuItem closeMenuItem = new JMenuItem("Close");

いいえ

JMenuItem closeMenuItem = new JMenu("Close");

new JMenu新しいサブメニューを作成するため、アクションを関連付けることはできず、サブメニュー項目のみを提供します。

于 2012-11-17T22:03:24.010 に答える