Hallo Java Gemeinde,
ich habe ein Problem mit JMenu und JMenuItem.
Habe festgestellt, dass nur die ersten beiden JMenuItems in Zusammenhang mit dem ActionListener funktionieren.
Wenn ich die pack-Anweisung vom JFrame entferne, gehen die JMenuItems plötzlich. Warum?
Was ist zu tun, damit dies funktioniert und dabei die Fenstergröße ok ist?
ich habe ein Problem mit JMenu und JMenuItem.
Habe festgestellt, dass nur die ersten beiden JMenuItems in Zusammenhang mit dem ActionListener funktionieren.
Wenn ich die pack-Anweisung vom JFrame entferne, gehen die JMenuItems plötzlich. Warum?
Was ist zu tun, damit dies funktioniert und dabei die Fenstergröße ok ist?
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class TextEditor extends JFrame
{
TextEditor(String title)
{
super(title);
this.init_editor();
}
class editor_window_listener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
void init_editor()
{
this.getContentPane().setLayout(new FlowLayout());
this.addWindowListener(new editor_window_listener());
editor_menu menu = new editor_menu();
this.setJMenuBar(menu);
this.setVisible(true);
this.pack();
}
class editor_menu extends JMenuBar
{
editor_menu()
{
super();
menu_action_listener action_listener = new menu_action_listener();
JMenu fileops = new JMenu("File");
JMenuItem fileops_open = new JMenuItem("Open");
JMenuItem fileops_save = new JMenuItem("Save");
JMenuItem fileops_print = new JMenuItem("Print");
JMenuItem fileops_exit = new JMenuItem("Exit");
fileops_open.addActionListener(action_listener);
fileops_save.addActionListener(action_listener);
fileops_print.addActionListener(action_listener);
fileops_exit.addActionListener(action_listener);
fileops.add(fileops_open);
fileops.add(fileops_save);
fileops.add(fileops_print);
fileops.add(fileops_exit);
this.add(fileops);
JMenu editops = new JMenu("Edit");
JMenuItem editops_cut = new JMenuItem("Cut");
JMenuItem editops_copy = new JMenuItem("Copy");
JMenuItem editops_paste = new JMenuItem("Paste");
editops_cut.addActionListener(action_listener);
editops_copy.addActionListener(action_listener);
editops_paste.addActionListener(action_listener);
editops.add(editops_cut);
editops.add(editops_copy);
editops.add(editops_paste);
this.add(editops);
JMenu searchops = new JMenu("Search");
JMenuItem searchops_stringsearch = new JMenuItem("Search String");
searchops_stringsearch.addActionListener(action_listener);
searchops.add(searchops_stringsearch);
this.add(searchops);
JMenu help = new JMenu("Help");
JMenuItem help_about = new JMenuItem("About");
help_about.addActionListener(action_listener);
help.add(help_about);
this.add(help);
}
class menu_action_listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String source_label = e.getActionCommand();
System.out.printf("%s\n", source_label);
if(source_label.equals("Load"))
;
if(source_label.equals("Save"))
;
if(source_label.equals("Print"))
;
if(source_label.equals("Exit"))
System.exit(0);
if(source_label.equals("Cut"))
;
if(source_label.equals("Copy"))
;
if(source_label.equals("Paste"))
;
if(source_label.equals("Search String"))
;
}
}
}
}
public class JTextEditor
{
public static void main(String[] args)
{
TextEditor editor = new TextEditor("JTextEditor");
}
}