Swing neues Fenster nicht sichtbar

Wirago

Mitglied
Ich habe einfache GUI mit einigen Buttons, ComboBoxen, Labels etc, einer der Buttons soll ein neues Fenster aufscheinen lassen. Allerdings tut sich beim click einfach nichts.
Ist wahrscheinlich ein einfaches Problem nur komm ich leider nicht drauf.

ActionListener des Buttons, der das Fenster aufrufen soll:
Java:
    	btnAddItem.addActionListener(new ActionListener()
		{
			
			@Override
			public void actionPerformed(ActionEvent arg0)
			{
				
				javax.swing.SwingUtilities.invokeLater(new Runnable()
				{
					@Override
					public void run()
					{
						new newItem().setVisible(true);
					}
				});
			}
		});

die Klasse newItem ist einfach nur ein im NetBeans zusammengeklicktes Fenster und hat hat eigentlich nur die InitComponents-Methode.

Java:
public class newItem extends javax.swing.JPanel {

	private static final long serialVersionUID = 1L;
	public newItem() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
   
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        fieldFinish = new javax.swing.JTextField();
        fieldName = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        fieldColor = new javax.swing.JTextField();
        fieldBrand = new javax.swing.JTextField();
        listTypes = new javax.swing.JComboBox<String>();
        jToggleButton1 = new javax.swing.JToggleButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        fieldComment = new javax.swing.JTextArea();

        jLabel1.setText("Name: ");

        fieldFinish.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fieldFinishActionPerformed(evt);
            }
        });

        jLabel4.setText("Finish: ");

        jLabel3.setText("Color: ");

        jLabel2.setText("Brand: ");

        listTypes.setModel(new javax.swing.DefaultComboBoxModel<String>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        jToggleButton1.setText("OK");

        fieldComment.setColumns(20);
        fieldComment.setRows(5);
        fieldComment.setText("Comment");
        jScrollPane1.setViewportView(fieldComment);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(fieldName))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3)
                            .addComponent(jLabel4))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(fieldColor)
                            .addComponent(fieldBrand)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(fieldFinish, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(0, 0, Short.MAX_VALUE))))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(listTypes, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jToggleButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(fieldName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(fieldBrand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(fieldColor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(fieldFinish, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(listTypes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jToggleButton1))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        
    }// </editor-fold>

    private void fieldFinishActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }

    // Variables declaration - do not modify
    private javax.swing.JTextField fieldBrand;
    private javax.swing.JTextField fieldColor;
    private javax.swing.JTextArea fieldComment;
    private javax.swing.JTextField fieldFinish;
    private javax.swing.JTextField fieldName;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JComboBox<String> listTypes;
    // End of variables declaration
}
 

Volvagia

Top Contributor
Gott, der Code sieht zum :wuerg: aus.
Versuch mal die Klasse mit dem mieserablen Namen von einer Subklasse von Window und nicht von einen Panel erben zu lassen.

In einem Listener brauchst du den Code nicht in die Queue invoken, alle Listener werden standartgemäß per EDT abgearbeitet.
 

Wirago

Mitglied
oh, das mim listener wusste ich nicht.
Für den tollen Code kann ich nix... der ist generiert :oops:

Das mim Window haut nicht ganz so hin, da maleurt mir der Konstruktor.

Vllt. liegts daran, dass das "Haupt"-GUI ein JFrame ist? Kanns da irgendwelche Besonderheiten geben?
 

Volvagia

Top Contributor
Ne, Subklasse von Window. JFrame, JDialog oder JWindow bei Swing. Hast ja gesagt das er generiert ist, interessanter finde ich es wie du den jemals ändern willst.
 

Wirago

Mitglied
bei JDialog/JWindow und JFrame kommt es zur Runtime zu folgendem Fehler:
java.lang.IllegalArgumentException: GroupLayout can only be used with one Container at a time

Das zu Ändern ist natürlich absoluter Wahnsinn. Deshalb steht auch vor der initComponents das Kommentar "WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor."
Im Prinzip geht NetBeans davon aus, dass man den Code weder ansieht noch anfasst, sondern im netBeans-Editor ändert.
 

Volvagia

Top Contributor
Ich kenn mich (Gott sei dank) damit nicht aus, aber blind geraten musst du dem GroupLayout bei der Erzeugung das ContentPane des Fensters übergeben.
 

Wirago

Mitglied
jop, hast recht. habs auch selber grad herausgefunden...

hab einfach
Java:
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);

durch
Java:
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
ersetzt... klappt jetzt einwandfrei.

danke trotzdem vielmals :)


PS:
ich mochte die GUI-Programmierung sowieso nie ^^
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T neues Fenster durch Button öffnen funktioniert nicht!! AWT, Swing, JavaFX & SWT 2
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
B JavaFX TextField Eingabe in neues Fenster übernehmen AWT, Swing, JavaFX & SWT 4
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
X Neues Fenster mit Button öffnen und bearbeiten AWT, Swing, JavaFX & SWT 4
D Swing Neues (3.) Fenster öffnen AWT, Swing, JavaFX & SWT 2
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
C Benutzername in GUI eingeben und nach Spiel neues Fenster Benutzername wieder anzeigen AWT, Swing, JavaFX & SWT 1
C Durch klicken von Button neues Fenster oeffnen AWT, Swing, JavaFX & SWT 18
D Mit Klick auf Button ein neues Fenster erzeugen AWT, Swing, JavaFX & SWT 11
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
K Java Button öffnet neues Fenster AWT, Swing, JavaFX & SWT 5
X Swing Ein neues Fenster öffen aber ohne ein extra Prozess zu starten AWT, Swing, JavaFX & SWT 1
G JavaFX Neues Fenster erstellen AWT, Swing, JavaFX & SWT 3
J Mit Button neues Fenster öffnen AWT, Swing, JavaFX & SWT 17
X Swing Neues Fenster erzeugen AWT, Swing, JavaFX & SWT 3
H Swing neues fenster AWT, Swing, JavaFX & SWT 2
D Neues Java Fenster öffnen AWT, Swing, JavaFX & SWT 2
N Durch Button drücken neues Fenster öffnen AWT, Swing, JavaFX & SWT 13
I Applet --> neues Fenster öffnen AWT, Swing, JavaFX & SWT 11
N Threads kein neues Fenster erzeugen lassen AWT, Swing, JavaFX & SWT 4
F neues Fenster öffnen AWT, Swing, JavaFX & SWT 2
T Jbutton geklickt, dann neues Fenster AWT, Swing, JavaFX & SWT 4
M Will ein neues Fenster AWT, Swing, JavaFX & SWT 13
J Problem: neues Fenster bei dispose öffnen AWT, Swing, JavaFX & SWT 8
hamburger_jung Mit Button Klick neues Fenster öffnen. AWT, Swing, JavaFX & SWT 1
J JList - doppelklick auf item -> neues fenster öffnet sich AWT, Swing, JavaFX & SWT 2
M Neues Fenster öffnen AWT, Swing, JavaFX & SWT 2
M Tooltip / neues Fenster AWT, Swing, JavaFX & SWT 6
G JavaFX Code in neues Projekt übernehmen AWT, Swing, JavaFX & SWT 0
W Clear Canvas und anschließendes neues Erstellen von Objekten auf Canvas aus ArrayList AWT, Swing, JavaFX & SWT 4
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
M Swing Durch Usereingabe neues Objekt AWT, Swing, JavaFX & SWT 2
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
B JavaFX ImageView neues Bild zuweisen AWT, Swing, JavaFX & SWT 19
I Neues JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 5
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
D Neues Dialog Mittig auf dem Bildschirm AWT, Swing, JavaFX & SWT 4
D Swing Bei Button Click neues Panel laden AWT, Swing, JavaFX & SWT 3
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
W Neues TableModel und JTable wird nicht refreshed AWT, Swing, JavaFX & SWT 3
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
A JComboBox-Inhalt durch neues Array ersetzen AWT, Swing, JavaFX & SWT 2
GianaSisters AWT Per Button neues Element auf den jPanel setzen AWT, Swing, JavaFX & SWT 6
B Warten bis neues ImageIcon zugewiesen ist AWT, Swing, JavaFX & SWT 3
J jme neues projekt öffnen AWT, Swing, JavaFX & SWT 4
H Applet JApplet soll neues Tab im Browser öffnen AWT, Swing, JavaFX & SWT 2
M Swing jcombobox als jtable-editor: neues Item auswählen AWT, Swing, JavaFX & SWT 4
O Button (ActionPerformed) soll neues JFrame erzeugen AWT, Swing, JavaFX & SWT 8
Dit_ Mit Button "Weiter" neues Panel laden, altes ausblenden... AWT, Swing, JavaFX & SWT 4
H Swing [gelöst]Neues Swing Element erstellen AWT, Swing, JavaFX & SWT 4
G JList und ein neues Element oben in der Liste einfügen AWT, Swing, JavaFX & SWT 4
N in jScrollPane, neues Swing Element hinzufügen AWT, Swing, JavaFX & SWT 6
S Neues Panel in JFrame anzeigen durch Button klick AWT, Swing, JavaFX & SWT 2
D Neues JPanel ohne Symbolleisteneintrag AWT, Swing, JavaFX & SWT 6
G JButton benutzen um ein neues JFrame zu erstellen AWT, Swing, JavaFX & SWT 3
M neues Frame per klick anzeigen AWT, Swing, JavaFX & SWT 9
M Neues Programm? AWT, Swing, JavaFX & SWT 20
G Neues Frame über Button öffnen lassen AWT, Swing, JavaFX & SWT 15
S MVC - Neues Frame, neue View, neuer Controller? AWT, Swing, JavaFX & SWT 3
G Neues Model für JTextField erstellen AWT, Swing, JavaFX & SWT 8
M fortführung neues Bild laden AWT, Swing, JavaFX & SWT 12
M neues Bild laden AWT, Swing, JavaFX & SWT 15
V JOptionPane neues outfit mit BasicOptionPaneUI? AWT, Swing, JavaFX & SWT 22
D in neues Image-Objekt zeichnen AWT, Swing, JavaFX & SWT 3
G JTree. Neues Element hinzufügen und Selection beibehalten! AWT, Swing, JavaFX & SWT 3
J Neues Problem AWT, Swing, JavaFX & SWT 9
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
G Zuletzt aktives Fenster, vor dem aktuell aktiven AWT, Swing, JavaFX & SWT 2
sserio Kann man bei JavaFx ein Fenster aufkommen lassen? AWT, Swing, JavaFX & SWT 1
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
S Swing Alles beenden bei Fenster mit Scroll-Balken AWT, Swing, JavaFX & SWT 6
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
MiMa JavaFX Fenster in JavaFX öffnen Schliessen (Initialisierung) AWT, Swing, JavaFX & SWT 20
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben