0
このコードでいくつか問題があります。メニュー項目をクリックすると、私のactionListenerは機能しません。コードに問題があると思いますが、ここでそれを大胆にしようとしました(**)。私は、特にこのような、アプリの左側にメニューが必要です。自分で書くことはできませんでしたので、この例をJava GUIから使用して編集しました。重要なことは、アイテムがマウスにマウスを乗せているときにアイテムがその存在を示していないということです。通常のテキストのようです。私の結果を得るために何をすべきかアドバイスがありますか?ActionListenersがJMenuBarで動作しません
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainSite implements ActionListener
{
private JMenuItem menu1 = new JMenuItem("menu 1");
private JMenuItem menu2 = new JMenuItem("menu 2");
private JMenuItem menu3 = new JMenuItem("menu 3");
private JMenuItem menu4 = new JMenuItem("menu 4");
public JMenuBar createMenuBar()
{
JMenuBar menuBar = new JMenuBar();
menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.PAGE_AXIS));
menuBar.add(menu1);
menuBar.add(menu2);
menuBar.add(menu3);
menuBar.add(menu4);
menuBar.setBorder(BorderFactory.createMatteBorder(0,0,0,1,
Color.BLACK));
return menuBar;
}
**private static void createAndShowGUI()
{
JFrame F = new JFrame("App");
F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
MainSite demo = new MainSite();
Container contentPane = F.getContentPane();
contentPane.setBackground(Color.WHITE);
contentPane.add(demo.createMenuBar(),
BorderLayout.LINE_START);
F.setSize(640,420);
F.setVisible(true);
}
public static void main(String[] args)
{
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}**
@Override
public void actionPerformed(ActionEvent E) {
if(E.getSource() == menu1)
{
System.out.println("gnskfs");
}
if(E.getSource() == menu2)
{
System.out.println("gsdfogjs");
}
if(E.getSource() == menu3)
{
System.out.println("gfsjdkljgs");
}
if(E.getSource() == menu4)
{
System.out.println("hfsdajhg");
}
}
}
私はそれを見落とします、なぜ彼らは働いていなかったのです、ありがとう – Dave