Hallo,
Möchte, dass wenn man auf "Schreiben" klickt zum ActionListener kommt und dann auf einen neuen JFrame seinen Text schreiben kann, aber irgendwie geht das nicht, funktioniert das mit den Parametern nicht ?
- Klasse (beinhaltet main)
package Swing;
import javax.swing.*;
public class Menubar {
static JMenuItem item1, item2, item3; // 2 Items für Menü
public Menubar() {
String text;
JFrame frame = new JFrame("Fenstertext");
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLocationRelativeTo(null); // Mitte
frame.setLayout(null);
frame.requestFocus();
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("Datei");// Bekommt Items, Beispiel auf File klicken ist Menu,namens "Datei" darunter dann Item
item1 = new JMenuItem("Neu"); // 1. Itemname
item1.addActionListener(new MenuHandler());
item2 = new JMenuItem("Beenden");
item2.addActionListener(new MenuHandler());
item3 = new JMenuItem("Schreiben");
item3.addActionListener(new MenuHandler());
menu.add(item1);
menu.addSeparator(); // Strich für Abtrennung (organisierter)
menu.add(item2);
menu.addSeparator();
menu.add(item3);
bar.add(menu); // Menu zu Bar hinzufügen
frame.setJMenuBar(bar); // Setzen, da nur eine bar...
frame.setVisible(true);
}
public static void main(String[] args) {
new Menubar();
}
}
2 Klasse :
package Swing;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Scanner;
public class MenuHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// WAS SOLL PASSIEREN ?
if (e.getSource() == Menubar.item1) { // Ein bestimmtes Item ?
System.out.println("Neu...");
} else if (e.getSource() == Menubar.item2) {
System.exit(0); // Programm beenden
} else if (e.getSource() == Menubar.item3) {
JFrame neuer = new JFrame();
File file1 = new File("src/textSpeichern.txt");
neuer.setSize(800, 600);
neuer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
neuer.setResizable(false);
neuer.setLocationRelativeTo(null); // Mitte
neuer.setLayout(null);
neuer.requestFocus();
neuer.setVisible(true);
System.out.println("Was möchtest du schreiben?");
Scanner scanner = new Scanner(System.in);
String as = scanner.next();
JPanel panel = new JPanel();
JLabel label = new JLabel(as);
panel.add(label);
neuer.add(panel);
}
}
}
Warum geht das nicht ???
Danke für die Antworten bzw. die Hilfe ! :)
Dann kommt der Fehlercode "WindowConstants.EXIT_ON_CLOSE cannot be resolved as a variable"