neues Fenster mit Button öffnen

K

KlemensyXYZ

Gast
Moin,

ich versuche grade ein neues Fenster mit einem Button zu öffnen.
Doch das Programm will nicht so wie ich ;(

bei google habe ich das hier gefunden:
Java:
Dialogfenster wnd = new Dialogfenster(); 
wnd.setVisible(true);

ich habe das "Dialogfenster" durch meinen Namen ersetzt und das ganze in den Action Listener eingebaut:
Java:
import java.awt.event.*;
import java.awt.*;

public class MyActionListener_4 implements ActionListener
{
	public NeuesFensterOeffnen f;
	public MyActionListener_4(NeuesFensterOeffnen f)
    {
		this.f=f;
    }
	
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==f.neu)
		{
			Fenster2 wnd = new Fenster2();
			wnd.setVisible(true);
		}
		
		if(e.getSource()==f.btnBeenden)
		{
			System.exit(0);
		}
	}
}

Das erste Fenster ist das hier:

Java:
import java.awt.*;

public class NeuesFensterOeffnen extends Frame
{
	public Button neu = new Button("Neues Fenster");
	public Button btnBeenden = new Button("Beenden");
	
	private Panel pnlNorth = new Panel();
	
	private MyActionListener_4 myActionListener = new MyActionListener_4(this);
	
	public NeuesFensterOeffnen()
	{
		this.pnlNorth.add(this.neu);
		//this.pnlNorth.add(this.btnBeenden);
		this.add(this.pnlNorth,BorderLayout.NORTH);
		this.add(this.btnBeenden,BorderLayout.SOUTH);
		this.pack();
		this.show();
		this.addWindowListener(new MyWindowListener());
		this.btnBeenden.addActionListener(myActionListener);
	}
	public static void main(String argv[]  )
	{
		NeuesFensterOeffnen f = new NeuesFensterOeffnen();
	}
}

was mach ich denn noch falsch das das nicht funktioniert?

Danke
 

feiste

Bekanntes Mitglied
von meinem lehrer ^^

Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


public class KNOPFFENSTER extends JFrame implements ActionListener
{
    JButton buttonHallo;
    JButton buttonServus;
    
    public KNOPFFENSTER()
    {
        // Fenster soll sichtbar sein
        setVisible(true);
        
        // Standard-Layout setzen (einfach so lassen...)
        getContentPane().setLayout(new FlowLayout());
        
        // Button erzeugen. Im Konstruktor steht der Name, der im Knopf erscheinen soll
        buttonHallo = new JButton("Hallo");
        
        // Button wird dem Fenster hinzugefügt
        add(buttonHallo);
        
        // Jetzt wird dem Knopf gesagt, dass bei einem Knopfdruck die actionPerformed Methode 
        // aufgerufen werden soll. Sieht etwas verwegen aus, einfach so übernehmen.
        buttonHallo.addActionListener(this);
        
        // Das ganze nochmal für einen zweiten Knopf
        buttonServus = new JButton("Servus");
        add(buttonServus);
        buttonServus.addActionListener(this);
        
        // Muss am Ende stehen, damit die eingetragenen Sachen sichtbar werden
        pack();
    }
    
    // Wenn irgendeiner der Knöpfe gedrückt wird, dann wird diese Methode
    // automatisch aufgerufen. Eine Art von auslösender Aktion
    public void actionPerformed(ActionEvent event) 
    {
        System.out.print("Irgendein Knopf wurde gedrückt...");
        // Wir müssen nun herausfinden, welcher Knopf gedrückt wurde...
        
        // Handelt es sich bei der Quelle der Aktion um das Objekt buttonHallo? Dann gib "Hallo" aus.
        if(event.getSource() == buttonHallo)
        {
            System.out.println("Hallo");
        }
        
        if(event.getSource() == buttonServus)
        {
            System.out.println("Servus");
        }
        
    }
}
 
K

KlemensyXYZ

Gast
dank dir schon mal dafür,
aber geht das auch ohne Swing?
das kommt erst danach und darf ich noch nicht :(
(wenns nicht anders geht hat mein Lehrer pech gehabt :pueh:
 
K

KlemensyXYZ

Gast
:bahnhof: ähm und wo ist denn deine main Klasse?
so ist das nicht ausführbar!

Und soweit ich das sehe wird auch da nur ein Fenster (mit 2 Buttons, die nichts können) geöffnet.
Ich möchte ja mit einem Button ein anderes Fenster öffnen.
 
Zuletzt bearbeitet von einem Moderator:

feiste

Bekanntes Mitglied
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


public class KNOPFFENSTER extends JFrame implements ActionListener
{
    JButton buttonHallo;
    JButton buttonServus;
    
    public KNOPFFENSTER()
    {
        // Fenster soll sichtbar sein
        setVisible(true);
        
        // Standard-Layout setzen (einfach so lassen...)
        getContentPane().setLayout(new FlowLayout());
        
        // Button erzeugen. Im Konstruktor steht der Name, der im Knopf erscheinen soll
        buttonHallo = new JButton("Hallo");
        
        // Button wird dem Fenster hinzugefügt
        add(buttonHallo);
        
        // Jetzt wird dem Knopf gesagt, dass bei einem Knopfdruck die actionPerformed Methode 
        // aufgerufen werden soll. Sieht etwas verwegen aus, einfach so übernehmen.
        buttonHallo.addActionListener(this);
        
        // Das ganze nochmal für einen zweiten Knopf
        buttonServus = new JButton("Servus");
        add(buttonServus);
        buttonServus.addActionListener(this);
        
        // Muss am Ende stehen, damit die eingetragenen Sachen sichtbar werden
        pack();
    }
    
    // Wenn irgendeiner der Knöpfe gedrückt wird, dann wird diese Methode
    // automatisch aufgerufen. Eine Art von auslösender Aktion
    public void actionPerformed(ActionEvent event) 
    {
        System.out.print("Irgendein Knopf wurde gedrückt...");
        // Wir müssen nun herausfinden, welcher Knopf gedrückt wurde...
        
        // Handelt es sich bei der Quelle der Aktion um das Objekt buttonHallo? Dann gib "Hallo" aus.
        if(event.getSource() == buttonHallo)
        {
            System.out.println("Hallo");
        }
        
        if(event.getSource() == buttonServus)
        {
            System.out.println("Servus");
        }
        
    }
    public static void main(String args[]) {
        new KNOPFFENSTER(); }
}


wir arbeiten mit BlueJ da braucht man das nicht
 
K

KlemensyXYZ

Gast
Java:
    public void actionPerformed(ActionEvent event) 
    {
        System.out.print("Irgendein Knopf wurde gedrückt...");
        // Wir müssen nun herausfinden, welcher Knopf gedrückt wurde...
        
        // Handelt es sich bei der Quelle der Aktion um das Objekt buttonHallo? Dann gib "Hallo" aus.
        if(event.getSource() == buttonHallo)
        {
            System.out.println("Hallo");
        }
        
        if(event.getSource() == buttonServus)
        {
            System.out.println("Servus");
        }
        
    }
stattdessen soll ein neues Fenster kommen :)
Java:
    public static void main(String args[]) {
        new KNOPFFENSTER(); }
}
das habe ich jetzt auch schon gemacht:oops:

PS. Ich arbeite mit Eclipse
 

feiste

Bekanntes Mitglied
dann musst du halt einfach, statt
System.out.println("...")
was anderes ausführen
war ja nur ein Bespiel

wenn ne neue klasse ausgeführt werden soll
schaut eben so aus

Java:
 public void actionPerformed(ActionEvent event) 
    {
       
        
        // Handelt es sich bei der Quelle der Aktion um das Objekt buttonHallo? Dann gib "Hallo" aus.
        if(event.getSource() == buttonHallo)
        {
            new Fenster();
        }
        
        if(event.getSource() == buttonServus)
        {
            new Fenster2();
        }
        
    }
 
Zuletzt bearbeitet:

W9ND3R

Aktives Mitglied
Deinem Quellcode nach fehlt in deinem ersten Fenster einfach nur der ActionLIstener für den Button, der das neue Fenster öffnen soll. Also:
Java:
this.neu.addActionListener(myActionListener);
 
K

KlemensyXYZ

Gast
oha dummer fehler :oops:

gibt es vielleicht auch eine Möglichkeit den buttons ein bestimmte Größe zuzuordnen?
in meinem Buch steht davon nichts drin.
 
K

KlemensyXYZ

Gast
so und noch ein Problem:
wenn ich das neue Fenster wieder schließe gehen beide Fenster wieder zu.
Ist es auch möglich nur das neue Fenster zu schließen und das alte offen zu lassen?
 

L-ectron-X

Gesperrter Benutzer
Wenn du das Fenster über die Buttons aus deinem Layout schließen willst: am Fenster nicht
Code:
System.exit(0);
aufrufen, sondern
Code:
this.dispose();
 
K

KlemensyXYZ

Gast
Du benutzt FlowLayout, da kannst du das mit setPreferredSize(...) machen.
das habe ich irgendwie nicht verstanden.
Könnte jemand bittte mal ein kurzes Beispiel zeigen?
Wenn du das Fenster über die Buttons aus deinem Layout schließen willst: am Fenster nicht
Code:
System.exit(0);
aufrufen, sondern
Code:
this.dispose();
Das hab ich inzwischen mit
Code:
wnd.setVisible(true);
und
Code:
wnd.setVisible(false);
gelöst. Die andere Lösung funktioniert aber auch.
 

L-ectron-X

Gesperrter Benutzer
Das FlowLayout richtet die Komponenten so lange in einer Zeile aus, bis der Platz erschöpft ist. Wenn kein Platz mehr ist, werden die Komponenten, die nicht mehr in die Zeile passen, in die nächste Zeile verschoben.
Es richtet sich dabei nach der voreingestellten Größe einer Komponente. Und die Größe (PreferredSize) kann man im FlowLayout (anders als bspw. im GridLayout) wirksam setzen.

Hier mal ein Beispiel mit deinem Code: (Zeile 30)
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


public class KnopfFenster extends JFrame implements ActionListener {
    private JButton buttonHallo;
    private JButton buttonServus;

    public KnopfFenster() {
        super("KnopfFenster");
        
        // Standard-Layout setzen (einfach so lassen...)
        getContentPane().setLayout(new FlowLayout());

        // Standardaktion beim Klicken auf den Fenster-Button "Schließen"
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Button erzeugen. Im Konstruktor steht der Name, der im Knopf erscheinen soll
        buttonHallo = new JButton("Hallo");

        // Button wird dem Fenster hinzugefügt
        add(buttonHallo);

        // Jetzt wird dem Knopf gesagt, dass bei einem Knopfdruck die actionPerformed Methode
        // aufgerufen werden soll. Sieht etwas verwegen aus, einfach so übernehmen.
        buttonHallo.addActionListener(this);

        // Das ganze nochmal für einen zweiten Knopf
        buttonServus = new JButton("Servus");
        
        buttonServus.setPreferredSize(new Dimension(80, 40)); //Standardgröße für den Button setzen
        
        add(buttonServus);
        buttonServus.addActionListener(this);

        // Muss am Ende stehen, damit die eingetragenen Sachen sichtbar werden
        pack();

        //Fenster auf dem Bildschirm zentrieren
        setLocationRelativeTo(null);
        
        // Fenster soll sichtbar sein (immer als letzte Anweisung!)
        setVisible(true);
    }

    // Wenn irgendeiner der Knöpfe gedrückt wird, dann wird diese Methode
    // automatisch aufgerufen. Eine Art von auslösender Aktion
    public void actionPerformed(ActionEvent event) {
        System.out.print("Irgendein Knopf wurde gedrückt...");
        // Wir müssen nun herausfinden, welcher Knopf gedrückt wurde...

        // Handelt es sich bei der Quelle der Aktion um das Objekt buttonHallo? Dann gib "Hallo" aus.
        if(event.getSource() == buttonHallo) {
            System.out.println("Hallo");
        }

        else if(event.getSource() == buttonServus) {
            System.out.println("Servus");
        }

    }
    
    public static void main(String args[]) {
        new KnopfFenster();
    }
}

Habe nebenbei auch noch ein paar Sachen bereinigt.
 
K

KlemensyXYZ

Gast
ah dank dir
hab kapiert :applaus:

und das geht doch sicher auch mit dem GridLayout und dem BorderLayout, oder?

PS.: Das war nicht mein Code sondern der von feiste :pueh: ; meiner ist ganz oben auf der Seite
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
S vom button ein neues fenster öffnen Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
M Neues Fenster Java Basics - Anfänger-Themen 2
M Neues Fenster öffnen altes schützen Java Basics - Anfänger-Themen 10
K Neues Fenster Öffnen? Java Basics - Anfänger-Themen 18
E Neues Java Fenster öffnen Java Basics - Anfänger-Themen 4
G JSP ohne neues Fenster aufrufen. Java Basics - Anfänger-Themen 8
P Neues Fenster ueber Hauptfenster Java Basics - Anfänger-Themen 4
D neues Fenster in GUI Java Basics - Anfänger-Themen 2
L neues Fenster und Hauptfenster sperren Java Basics - Anfänger-Themen 11
K Neues Fenster per Buttonklick, Texteingabe speichern Java Basics - Anfänger-Themen 9
R Gui + neues Fenster Java Basics - Anfänger-Themen 8
S Neues Fenster/Panel nach Knopfdruck Java Basics - Anfänger-Themen 2
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J Array vertauschen ohne ein neues anzulegen?! Java Basics - Anfänger-Themen 10
W Neues Lern-Projekt gesucht Java Basics - Anfänger-Themen 8
B Erste Schritte nio oder io für neues Projekt Java Basics - Anfänger-Themen 1
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
C Neues Objekt mit Beziehung zu bereits bestehendem Objekt Java Basics - Anfänger-Themen 4
T Erste Schritte Totaler Noob in Java will was neues lernen Java Basics - Anfänger-Themen 22
F Verweis oder neues Objekt? Java Basics - Anfänger-Themen 8
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
F Neues Objekt oder nur ein Verweis? Java Basics - Anfänger-Themen 5
L OOP Neues Objekt bei jeder Eingabe erstellen (Objekte speichern?) Java Basics - Anfänger-Themen 10
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
P Array reversed in ein neues Array Java Basics - Anfänger-Themen 5
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10
M Neues Objekt erzeugen mit Klassennamen oder ohne Java Basics - Anfänger-Themen 5
I Neues Klassenobjekt nicht "ansprechbar" Java Basics - Anfänger-Themen 5
M Neues Objekt? Java Basics - Anfänger-Themen 6
K Neues Bild bei eingabe bestätigung erscheinen Java Basics - Anfänger-Themen 21
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
S Innerhalb eines Fensters ein neues erschaffen Java Basics - Anfänger-Themen 7
D aus einem einzeiligen String ein neues Objekt erstellen Java Basics - Anfänger-Themen 5
D Neues Frame öffnen Java Basics - Anfänger-Themen 7
M Neues Objekt erstellen Java Basics - Anfänger-Themen 3
P neues Objekt Java Basics - Anfänger-Themen 4
J Neues Forum Thema erstellen mit java(httpclient) Java Basics - Anfänger-Themen 11
D Neues Objekt in Methode erstellen möglich? Java Basics - Anfänger-Themen 5
S mit clickevent neues formular öffnen Java Basics - Anfänger-Themen 2
F jTable - neues Element vorher auf existenz Prüfen Java Basics - Anfänger-Themen 7
B neues Objekt erzeugen Java Basics - Anfänger-Themen 7
D Neues ContentPane öffnen Java Basics - Anfänger-Themen 3
B neues Problem! Java Basics - Anfänger-Themen 14
S neues Objekt benennen Java Basics - Anfänger-Themen 3
I Probleme bei "Neues Spiel" Java Basics - Anfänger-Themen 3
T Möchte ein neues Objekt erzeugen mit Wert von anderem Objekt Java Basics - Anfänger-Themen 9
L Wie kann ich auch in einem ActionListener ein neues java Pro Java Basics - Anfänger-Themen 8
gurgi mit button neues Frame öffnen Java Basics - Anfänger-Themen 7
G Neues File mit vorgegebenen Einstellungen erstellen? Java Basics - Anfänger-Themen 7
G neues Objekt der Klasse eines anderen Objekts Java Basics - Anfänger-Themen 3
T Panel entfernen, neues hinzufügen Java Basics - Anfänger-Themen 2
S Methode soll ein neues Objekt vom Typ Class XYZ Java Basics - Anfänger-Themen 7
G neues String Array in super() übergeben Java Basics - Anfänger-Themen 3
N Open Source für Anfänger, neues Projekt-> Interesse? Java Basics - Anfänger-Themen 36
I Neues Spiel starten Java Basics - Anfänger-Themen 9
S Problem neues Objekt erzeugen Java Basics - Anfänger-Themen 4
M removeAll() und neues Hinzufügen Java Basics - Anfänger-Themen 2
A neues Objekt in main methode erstellen Java Basics - Anfänger-Themen 2
N Wie öffne ich ein neues Applet? Java Basics - Anfänger-Themen 4
G neues Paket importieren Java Basics - Anfänger-Themen 2
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
R Spieleprogrammierung Menüeintrag "Neues Spiel" Java Basics - Anfänger-Themen 2
G Neues Bild bei MouseOver Java Basics - Anfänger-Themen 2
X GUI: neues Panel in einer Applikation anzeigen lassen Java Basics - Anfänger-Themen 2
bernd Neues JFrame erzeugen? Java Basics - Anfänger-Themen 8
M Kann neues Servlet nicht hinzufügen Java Basics - Anfänger-Themen 5
S in einem PopUp ein neues Popup erzeugen? Java Basics - Anfänger-Themen 5
J neues gui hinzugefügt .... jetzt gehts nicht mehr Java Basics - Anfänger-Themen 10
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben