Java – die besten Beiträge

Was ist Falsch, Java-Swing?

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 ?

  1. 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 ! :)

Computer, programmieren, Java, Informatik

Meistgelesene Beiträge zum Thema Java