Neues Fenster mit Button öffnen?

2 Antworten

JButton button = new JButton("New Frame");
button.addActionListener( new ActionActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        // Create a method named "createFrame()", and set up an new frame there
        // Call createFrame()
    }
});

sollte gehen

BertKnurrhahn 
Fragesteller
 27.06.2019, 11:14

Danke. Trotzdem komme ich irgendwie nicht weiter.

Da bekomme ich lauter Fehlermeldungen.

Kann ich dort ein gesamtes Programm drin schreiben, welches sich dann öffnet?

0
regex9  27.06.2019, 18:06
@BertKnurrhahn

1) Es muss ActionListener heißen.

2) Die jeweiligen Klassen musst du schon auch noch mit Imports einbinden. Wenn dir deine Entwicklungsumgebung dabei nicht hilft, kannst du die jeweiligen Informationen auch in der API nachschlagen.

2) Können ja, doch ich würde nicht dazu raten. Setze Klassen und Methoden ein, um dein Programm übersichtlich zu halten.

1

Mit Java Swing oder JavaFX könntest du dir eine grafische Oberfläche zusammenbauen.

Simples Beispiel mit ersterem:

public class Main {
  public static void main(String[] args) {
    SwingUtilities.invokeLater(() -> new View());
  }
}

class View {
  public View() {
    JFrame frame = new JFrame("Example");
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setLayout(new GridLayout(1, 3));

    JButton firstCalculationButton = new JButton("Rechnung 1");
    firstCalculationButton.addActionListener(e -> new FirstCalculationWindow());
    frame.add(firstCalculationButton);
    
    JButton secondCalculationButton = new JButton("Rechnung 2");
    secondCalculationButton.addActionListener(e -> new SecondCalculationWindow());
    frame.add(secondCalculationButton);

    JButton thirdCalculationButton = new JButton("Rechnung 3");
    thirdCalculationButton.addActionListener(e -> new ThirdCalculationWindow());
    frame.add(thirdCalculationButton);

    frame.setSize(200, 200);
    frame.setVisible(true);
  }
}

In den einzelnen Klassen FirstCalculationWindow, etc. könntest du nun weitere Frames definieren und anzeigen lassen.