OOP Auf JPanel zugreifen, das einem JTabbePane hinzugefügt worden ist

Sin137

Mitglied
Hallo Community,

meine Fragestellung ist eigentlich schon in der Beschreibung erklärt.
Ich habe ein Panel auf dem ein JTabbedPane liegt. Ich füge nun ein Tab hinzu, das ein JPanel mit bringt. Sprich ich habe dem Tab mittels des add-Befehls ein JPanel hinzugefügt (auf dem eine Tabelle enthalten ist). Nun will ich an das Objekt des JPanels ran, da ich dort Informationen hinterlegt habe.

Beim Versuch über den Tab auf das Panel zuzugreifen bekomme ich lediglich eine NullPointerException.

Java:
int x = btn.getMainFrame().getQueryView().getTP().getSelectedIndex();
((TablePanel)btn.getMainFrame().getQueryView().getTP().getTabComponentAt(x)) //hier wird eine Methode aufgerufen die in der Klasse des Panels exiisitert

Wie schon geschildert, bekomme ich lediglich eine NullPointerException.
 

Joose

Top Contributor
Solle Methodenketten sind sehr unschön und erschweren auch die Fehlersuche.
Der StackTrace zeigt dir zwar die richtige Zeile an, aber er sagt nicht genau welche Aufruf in dieser Zeile nun "null" geliefert hat.

Zerlege diese Zeile und finde erstmal heraus wo wirklich die NullPointer Auftritt, welches Objekt versuchst du an dieser Stelle zu bekommen?
 

Sin137

Mitglied
Auf die Idee bin ich auch schon gekommen. Hätte ich vll erwähnnen sollen. Bis zum getTabComponentAt(x) klappt es. Also ich bekomme da etwas zurück, das auch in ein TablePanel gecastet wird. Aber der Aufruf danach wirft dann die Exception.

Wie kann man so eine Kette anders aufbauen?
Ich hab ja viele Klassen und ich kann ja nicht immer alles miteinander verbunden haben. Das ist glaub ich auch nicht der Sinn von OOP.
 

Joose

Top Contributor
Bis zum getTabComponentAt(x) klappt es. Also ich bekomme da etwas zurück, das auch in ein TablePanel gecastet wird. Aber der Aufruf danach wirft dann die Exception

Dann ist dein Code oben nicht vollständig.
Nach dem Cast (der laut deiner Aussage funktioniert) enthält die Zeile nichts mehr. Welchen Aufruf meinst du da?
So wie das beschrieben ist, würde ich meinen der Cast liefert "null" zurück.

Du musst halt genau raussuchen wo das "null" herkommt. Und dann überlegen warum dort "null" und nicht etwas anderes kommt.
Mehr kann man da aktuell nicht dazu sagen ;)
 

Sin137

Mitglied
Naja ich ruf halt eine Methode auf, die in der Klasse von dem Panel hinterlegt wurde, wie ich als Kommentar schon dazu geschrieben habe.

Wenn ich also auf das Panel zugreifen will, dann müsste das ja "null" sein. Ich will praktisch auf einem Panel, eine Methode aufrufen, aber das Objekt ist leer. Das sagt die Exception mir aus.
Die Frage stellt sich mir warum ist das null. Das Objekt wurde ja erzeugt, und wird angezeigt. Ich bin mir auch unsicher ob der Weg über "getTabComponentAt(x)" der richtige Weg ist, um an das Panel zu gelangen.
 

Thallius

Top Contributor
Warum merkst du dir das Panel nicht einfach in einer Instanzen-Variablen? Ich finde dieses "Ich suche mal durch die Views und sehe was ich finde" immer sehr unschönen Code.

Gruß

Claus
 

Sin137

Mitglied
@Thallius Ich kann es nicht in einer Instanz-Variabel mir merken, da ich nicht weiß wie viele davon erstellt werden. Ich handhabe es derzeit so, dass wenn ich auf meinen Button "hinzufüge" klicke ein neuer Pane erzeugt wird. Dazu erzeuge ich im ActionListener das Panel-Objekt und füge es dem JTabbedPane hinzu. Ich will jetzt auf das Pane zugreifen und mir dieses Objekt eben wieder holen. Dabei passiert meiner Meinung der Fehler. Vielleicht findet er das Objekt nicht oder dieses Wurde von der GC gelöscht.

@JStein52 Es ist eine GetterMethode, die auf das Objekt zugreifen soll, da ich dort etwas abspeichere.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at de.jonathan_puxler.controller.query.QueryController.generateSQLQuery(QueryController.java:80)
at de.jonathan_puxler.controller.query.QueryBTNController.actionPerformed(QueryBTNController.java:63)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
 

JStein52

Top Contributor
Ist die Methode "generateSQLQuery" die in der die Zeile da oben steht ? Kannst du die Zeile nicht mal aufteilen und gucken ob du denn überhaupt das richtige Panel von getTabComponentAt(x) zurückkriegst ? Oder hast du das schon nachgeschaut ?
 

Sin137

Mitglied
@Thallius es kann ja wirklich so einfach sein ^^. Eine ArrayList an die richtige Stelle gesetzt noch ein zwei Parameter dazu und fertig. ^^ Danke für den Denkanstoß.

@JStein52 Da dein Vorgänger ein guten Lösungsansatz geliefert hat, habe ich dies jetzt garnicht ausprobiert. Trotzdem bedanke ich mir für eure Unterstützung.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y Bild in JPanel setzen Allgemeine Java-Themen 2
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
G JPanel lädt nicht?! Allgemeine Java-Themen 20
D JPanel in Mail darstellen Allgemeine Java-Themen 30
T Drucken von JPanel Allgemeine Java-Themen 4
M Threads JPanel eingeforen mit Threads Allgemeine Java-Themen 2
F JPanel Hintergrundbilder Allgemeine Java-Themen 1
C Position speichern von verschiebbaren Elementen auf JPanel Allgemeine Java-Themen 3
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
S OOP JFrame als Observer eines JPanel Allgemeine Java-Themen 3
S JPanel einfügen in MainClass Allgemeine Java-Themen 4
S JLabel auf JPanel Allgemeine Java-Themen 10
G JPanel in JFrame Allgemeine Java-Themen 9
DStrohma Swing Nicht möglich für ein JPanel den Fokus zu bekommen? Allgemeine Java-Themen 9
S Swing JPanel werden nicht angezeigt Allgemeine Java-Themen 6
T iText Dokument in DB und dann in ein JPanel Allgemeine Java-Themen 5
P JPanel - JFrame Allgemeine Java-Themen 6
B JScrollPane und JPanel: Scrollen nur nach Größe des JPanels Allgemeine Java-Themen 2
Z Dynamisches JPanel Allgemeine Java-Themen 10
J Arbeiten mit Punkten in einem JPanel Allgemeine Java-Themen 3
H JPanel direkt in PDF umwandeln Allgemeine Java-Themen 2
L JPanel schraffiert,contour oder sonst was? Allgemeine Java-Themen 3
G Componenten auf JPanel disablen Allgemeine Java-Themen 3
MQue Raster auf einem JPanel Allgemeine Java-Themen 8
S Lässt sich eigne JPanel Klasse in ein Array "stecken&qu Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
T JPanel to Image? Allgemeine Java-Themen 6
MQue JPanel Allgemeine Java-Themen 8
P JPanel/Zoom Allgemeine Java-Themen 2
M Neues JPanel in JFrame einbinden Allgemeine Java-Themen 6
L JPanel(bzw.) Panels transparent machen Allgemeine Java-Themen 7
T Allgemeinklasse zu JPanel, JButton. Allgemeine Java-Themen 26
P JPanel in JPanel Allgemeine Java-Themen 3
P Browser in JPanel Allgemeine Java-Themen 3
MQue Komponenten einem JPanel hinzufügen Allgemeine Java-Themen 9
MQue JButton zu JPanel hinzufügen Allgemeine Java-Themen 7
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P JPanel in JFrame Allgemeine Java-Themen 2
E Pixelweise auf einem JPanel/JLabel o.ä. zeichnen Allgemeine Java-Themen 4
M IExplorer in einen JPanel öffnen und kontrollieren? Allgemeine Java-Themen 9
F While(true)-Schleife im JPanel Allgemeine Java-Themen 9
M ContentPane und JPanel Allgemeine Java-Themen 8
T JApplet - JEditorPane gegen JPanel tauschen Allgemeine Java-Themen 2
S JPanel zur Laufzeit verbergen bzw. wieder anzeigen lassen Allgemeine Java-Themen 4
G JComboBox mit aufklappbarem JPanel? Allgemeine Java-Themen 13
G Aus JPanel Image Hohlen Allgemeine Java-Themen 3
G JPanel auto scrollen Allgemeine Java-Themen 2
berserkerdq2 Ein Gamepanel sei in 60x60 Pixel Quadrate aufgeteilt und isgesamt 600 Pixel breit & 300 Pixel hoch. Wie auf Quadrate zugreifen? Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
L Kapselung Auf DLL zugreifen Allgemeine Java-Themen 4
sascha-sphw Auf GoPro Speicher zugreifen Allgemeine Java-Themen 10
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
K Auf Dateiverzeichnis extern zugreifen (evtl über XML??) Allgemeine Java-Themen 22
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
P Threads Java Zugreifen Allgemeine Java-Themen 6
B Auf Web-API zugreifen Allgemeine Java-Themen 2
N Per Reflection auf (method) local inner class zugreifen? Allgemeine Java-Themen 3
A Datentypen Generics: Wie am besten auf Typparameter zugreifen Allgemeine Java-Themen 2
D Vererbung Wie auf Subklasse zugreifen + übergeben? Allgemeine Java-Themen 5
C Mit java auf Firefox zugreifen Allgemeine Java-Themen 7
T Mit Java auf die Konsole eines Process-Objekts zugreifen Allgemeine Java-Themen 10
U JNI -> Inhalt dll zugreifen Allgemeine Java-Themen 5
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
H JavaFX Von einer Methode auf stage-Objekt zugreifen Allgemeine Java-Themen 3
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
G Linux/C++/Pthreads auf JVM zugreifen, thread safe? Allgemeine Java-Themen 10
A OOP Wie auf Objekt der Superklasse zugreifen? Allgemeine Java-Themen 6
D auf Bilder im Jar-Archiv zugreifen Allgemeine Java-Themen 11
S auf public void Methode zugreifen ohne static Allgemeine Java-Themen 11
Gossi Mit Java auf Linux- & Windowssysteme zugreifen? Allgemeine Java-Themen 4
M Wie auf Webcam zugreifen= Allgemeine Java-Themen 6
P aus Thread auf Form zugreifen Allgemeine Java-Themen 9
K Auf Methoden der Runnable Klasse zugreifen Allgemeine Java-Themen 2
T Mit Java auf Dateien zugreifen die auf einem Server liegen Allgemeine Java-Themen 5
D von einer Klasse auf Komponente in anderer Klasse zugreifen Allgemeine Java-Themen 5
I Wie PDF in jar packen und drauf zugreifen? Allgemeine Java-Themen 22
ruutaiokwu auf priv. konstruktor von "aussen" zugreifen? Allgemeine Java-Themen 4
StupidAttack Auf Cookies in Mozilla Firefox zugreifen Allgemeine Java-Themen 3
A Auf Steuerelemente eines Dialoges zugreifen Allgemeine Java-Themen 2
A Wie zur Laufzeit auf Objekte zugreifen Allgemeine Java-Themen 7
P In Sourcecode auf Testcode zugreifen Allgemeine Java-Themen 12
F mit Applet auf .htaccess geschützte Dateien zugreifen Allgemeine Java-Themen 3
S Swing mit JEditorPane per HTML auf Bilder in JAR zugreifen. Allgemeine Java-Themen 3
P [Regulärer Ausdruck] Auf Gruppe mit Quantifier separat zugreifen? Allgemeine Java-Themen 2
T JNI -> auf Java-Variablen etc zugreifen Allgemeine Java-Themen 6
S auf freigebene Ordner zugreifen Allgemeine Java-Themen 6
Balbes Auf Datei im Dateisystem aus einem jar-Archiv zugreifen Allgemeine Java-Themen 4
T Mit JNI von C++ auf ein laufendes Java-Programm zugreifen Allgemeine Java-Themen 10
U auf Objekte mit variablem Namen zugreifen Allgemeine Java-Themen 4
L Aus Java auf Browser Formularfelder zugreifen Allgemeine Java-Themen 9
badfish Inerhalb der [void main] auf ein Objekt der [protected void] zugreifen Allgemeine Java-Themen 13
C Auf Oberflaechen Elemente zugreifen Allgemeine Java-Themen 8
T Mit 2 Klassen auf selben Thread zugreifen Allgemeine Java-Themen 11
A Auf Methode in actionPerformed zugreifen Allgemeine Java-Themen 3
T Mit Java Programm auf Firefox zugreifen Allgemeine Java-Themen 2
S Auf Array aus Methode zugreifen Allgemeine Java-Themen 3
MQue aus einem Applet auf Word zugreifen Allgemeine Java-Themen 3
D Auf annotierte Felder oder Methoden zugreifen Allgemeine Java-Themen 4
C JNI: Auf ArrayList und Klassen zugreifen Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben