JFrame öffnen per bottonKlick

Ken Masters

Lt. Junior Grade
Registriert
Dez. 2006
Beiträge
334
Hallo, ich hab folgendes Problem,
hab ein java projekt eröffnet das im package 2 fenster enthält und zwar ein Hauptfenster das drei Bottons enthält und ein anderes fenster das nur informationen enthält.

was ich möchte ist, das ich wenn ich auf ein bestimmtes botton im hauptfenster klicke, das das andere fenster xy erscheint. hab schon stundenlang für so ein kleines problem ausprobiert und gegoogelt, das es mir schon peinllich ist. :freak::confused_alt::madich weiss echt nicht mehr weiter.

zum code: hab im hauptfenster für die maus aktion folgendes:

import gui.tabelle;

public class main extends javax.swing.JFrame implements MouseListener {

tabelle Tabelle;
.....
.....
private void TabActionPerformed(java.awt.event.ActionEvent evt) {
Tabelle.open();
}
}


--------------------------
das Fenster xy sollte dann mit dem folgenden code aufgerufen werden

void open() {
this.setVisible(true);
}



Wenn ich das so mache wie oben beschrieben, bekomm ich folgende Exception:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at BMI_gui.main.TabActionPerformed(main.java:131)
at BMI_gui.main.access$100(main.java:12)
at BMI_gui.main$2.actionPerformed(main.java:46)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)



hab das auch mit setVisible(true) versucht, das gleiche ergebnis.

private void TabActionPerformed(java.awt.event.ActionEvent evt) {
if(evt.getSource() == Tab){
Tabelle.setVisible(true);
}


wäre für jede Hilfe sehr dankbar
 
Wo initialisierst du denn Tabelle?
 
tabelle ist das fenster was geöffnet werden soll.

initialisierst wird es doch so:

tabelle Tabelle;


EDIT:

achh gott....bin ich d........f !!
danke WTHO_O ;)

ich dachte ich hätte das mit dem initialisieren getan

Tabelle = new tabelle();
Tabelle.setVisible(true);

das wars. @kopfschüttel: kann nicht fassen :S
 
Zuletzt bearbeitet:
nein, da hast du grademal eine Variable angelegt. Es wurde noch kein Konstruktor aufgerufen.
Wenn du einen leeren Konstruktor hast mach mal:
tabelle Tabelle = new tabelle();

Nun ist die Variable Tabelle initialisiert und ihr Wert nicht mehr null. Daraus folgt, dass du nun auf dieser Variable Methoden anwenden kannst. Wenn du diese Methoden auf null anwenden willst, kriegst du halt deine NullPointerException.

Im übrigen sollte man Klassennamen groß schreiben und Variablen klein.
 
Kein Problem :-)
 
Zurück
Oben