0
이 코드에 몇 가지 문제가 있습니다. 메뉴 항목을 클릭하면 내 actionListener가 작동하지 않습니다. 코드에 문제가 있다고 생각합니다. 여기서 나는 그것을 대담하게하려고 노력했습니다 (**). 특히 앱의 왼쪽에 메뉴가 필요합니다. 필자는 직접 작성할 수 없으므로이 예제를 Java GUI에서 사용하고 편집했습니다. 중요한 것은 말하자면, 항목을 마우스로 가리키면 해당 항목이 표시되지 않습니다. 정상적인 텍스트와 같습니다. 내 결과를 얻기 위해 내가해야 할 조언이 있니?JMenuBar에서 ActionListeners가 작동하지 않습니다.
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