Packet trotz richtiger Addressierung nicht auffindbar?

tun3d

Mitglied
Hallo! Ich habe das Problem das ich Mit Netbeans und dem Integrierten GUI-Builder eine Swing app schreiben möchte. Diese soll per Knopfdruck ein Platzhalterpanel in mein gewünschtes Panel ändern.
Leider wird das Package in dem ich das Zielpanel gespeichert habe nicht gefunden.

Die Struktur sieht wiefolgt aus:
SA_PersonalDB
+crosscut (package)
+data (package)
-logic (package)
--viewLogic (package)
---PanelLoader.java
-view (package)
--testGUI (package)
---AddPanel.java
--GUI.java
----------------------------------------------------------------------
-Es gibt Eine PanelLoader Klasse:

[CODE lang="java" title="Panel Loader"]package SA_PersonalDB.logic.viewLogic;

import javax.swing.JPanel;

public class PanelLoader {

public void panelLoader(JPanel panel) {
SA_PersonalDB.view.GUI guiObjekt = new SA_PersonalDB.view.GUI();
guiObjekt.getPnlMain();
guiObjekt.setPnlMain(panel);
}
}
[/CODE]

-Ein Zielpanel welches aufgerufen werden soll (Der Code wurde vom GUI-Builder von Netbeans erstellt)

[CODE lang="java" title="Zielpanel mit dem GUI Builder Erstellt"]package SA_PersonalDB.view.testGUI;

public class AddPanel extends javax.swing.JPanel {


public AddPanel() {
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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {

jLabel1 = new javax.swing.JLabel();

setToolTipText("");

jLabel1.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
jLabel1.setText("Das hier ist das ADD PANEL");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(72, Short.MAX_VALUE)
.addComponent(jLabel1)
.addContainerGap(72, Short.MAX_VALUE)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(115, Short.MAX_VALUE)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(143, Short.MAX_VALUE)))
);
}// </editor-fold>//GEN-END:initComponents


// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel jLabel1;
// End of variables declaration//GEN-END:variables
}
[/CODE]
-Ich habe ein GUI klasse welche das Panel welches zu ändern ist und den Button(in dem fall wegen der Optik auch ein Panel) enthält. Hier die Aufrufe und der Kopf der Klasse:
[CODE lang="java" title="Kopf der GUI Klasse"]package SA_PersonalDB.view;

import javax.swing.JPanel;
import SA_PersonalDB.view.testGUI.AddPanel;

public class GUI extends javax.swing.JFrame {

public GUI() {
initComponents();
}
[/CODE]

In GUI Aufruf der Methode:
[CODE lang="java" title="in GUI" highlight="3"] private void pnlPassBarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_pnlPassBarMouseClicked
SA_PersonalDB.logic.viewLogic.ColorChanges.sidebarButtonsClicked(pnlPassBar);
SA_PersonalDB.logic.viewLogic.PanelLoader.panelLoader(SA_PersonalDB.view.testGUI.AddPanel);
}//GEN-LAST:event_pnlPassBarMouseClicked
[/CODE]

Leider Bekomme ich immer den fehler das das Packet in welchem sich das Panel befindet nicht existiert :

"cannot find symbol
symbol: class testGUI
location: package SA_PersonalDB.view"

ich habe schon alles mögliche versucht und weis einfach nich wodran es liegt...

danke für eure Hilfe!
 
Zuletzt bearbeitet:

tun3d

Mitglied
Eigentlich musst du in der Zeile 3 der Methode ein Objekt übergeben.
Du übergibst die Klasse. Erwartet wird ein Objekt JPanel.
Muss ich also vorab nochmal irgendwo ein Objekt dieser Klasse erstellen ?

Ich habe ja die Klasse "AddPanel" geschrieben welche nur das panel enthalten soll ,welche ich also komplett einladen möchte. Die idee ist halt später noch viele weiter panels in die einzelnen Packages zu packen und somit einzelne dialoge zu erhalten bzw zu erstellen.

Muss ich dann für jeden Panelwechsel ein Objekt des neuen Panels erstellen? Gibts dazu irgendwelche sinnvollen Stukturen wie man sowas macht (Ich will nicht irgendwie was hinschustern sondern es gleich richtig lernen)?
 

Jw456

Top Contributor
Die Klasse ist nur der Bauplan. Willst du ihn benutzen brauchst du ein Objekt davon
Eigentlich ist auch schon
SA_PersonalDB.logic.viewLogic.PanelLoader.panelLoader nur die Klasse und kein Objekt davon.

In welcher Klasse ist der listener?
 

tun3d

Mitglied
SA_PersonalDB.logic.viewLogic.PanelLoader.panelLoader nur die Klasse und kein Objekt davon.
Das soll bzw. ist eigentlich die Methode welche ich in der klasse PanelLoader aufrufe. Sollte ich sie umbenennen um es klarer zu machen?

Der listener wird automatisch in die gleiche klasse wie die events generiert also auch in SA_PersonalDB.view.GUI.java
 
K

kneitzel

Gast
Also der Code wird deutlich lesbarer, wenn Du imports nutzt und dann Klassen nur noch mit dem SimpleName angeben musst.

Die Probleme hat @Jw456 gut erkannt - ich will diese nur noch etwas ausführen:

a) Deine Methode panelLoader soll ein Argument vom Typ JPanel übergeben bekommen. Du übergibst aber nichts. Was Du da beim Aufruf hin geschrieben hast, ist nur ein Type. Das ist also schlicht keine gültige Java Syntax. Es musst eine JPanel Instanz übergeben werden!

b) Die Methode panelLoader ist nicht statisch, d.h. die Methode muss auf einer Instanz von PanelLoader aufgerufen werden.

Das ganze ist aber auch wenig durchdacht. Was für eine Aufteilung hast Du denn da gewählt? Kannst Du denn das, was da die einzelnen Klassen machen sollen, einmal in Worten beschreiben?

Wenn Du das in Worten beschreiben kannst, dann kommen hoffentlich auch sinnvolle Bezeichner. Ein PanelLoader der keine Panel Lädt. Statt dessen erzeugt er nur eine GUI Instanz und weist der noch ein Panel zu (Wäre ggf. einfach ein GUI Kontruktor, der ein Panel entgegen nimmt. - die ganze Klasse wäre dann sofort komplett weg).
 

tun3d

Mitglied
Also der Code wird deutlich lesbarer, wenn Du imports nutzt und dann Klassen nur noch mit dem SimpleName angeben musst.
Also meinst du in diesem fall in GUI die Klasse "logic.viewLogic.PanelLoader" zu imporieren, um nicht den kompletten pfad angeben zu müssen ?
Das ganze ist aber auch wenig durchdacht. Was für eine Aufteilung hast Du denn da gewählt? Kannst Du denn das, was da die einzelnen Klassen machen sollen, einmal in Worten beschreiben?
Wenn Du das in Worten beschreiben kannst, dann kommen hoffentlich auch sinnvolle Bezeichner. Ein PanelLoader der keine Panel Lädt. Statt dessen erzeugt er nur eine GUI Instanz und weist der noch ein Panel zu (Wäre ggf. einfach ein GUI Kontruktor, der ein Panel entgegen nimmt. - die ganze Klasse wäre dann sofort komplett weg).
Also die idee ist eine 1 Fenster applikation zu erstellen welche mit klicken auf buttons unterschiedliche aufgaben erfüllt bzw unterschiedliche dialoge anstößt welche verfahren abbilden sollen. Hier mal meine Grundideen der Klassen und dazugehörigen pakete:

view (Package): Alles was mit der reinen Optik zutun hat

view.testGUI (package): Hier sollen alle unterschiedlichen pannels für die "test" verfahren rein. Die idee war für jedes Optisch unterschiedliche panel eine eigene Klasse zu erstellen und zugehörige pannels verfahrensweise in unterschiedlichen Packages zu sortieren. Auch um nach und nach weitere Panels und Verfahren hinzufügen zu können ohne andere sachen wieder anfassen zu müssen.

view.GUI.java : Dies hier sollte eine art mainmenu darstellen welches ein Platzhalter panel hat welches nach einem buttonklick ausgetauscht wird.

logic (package): controller klassen welche die eigentliche logik enthalten.

logic.viewLogic (package): Klassen welche logisch mit der Optik zutun haben z.b. das laden des Panels oder aber auch der mousehover Effekt der Buttons im GUI

logic.viewLogic.PanelLoader.java: Eigentlich eine Klasse welche die logik beinhalten soll um die Panels im "Hauptfenster" auszutauschen (wobei ich mir da jetzt nicht mehr so sicher bin xD)

Die Struktur die du am Anfang gegeben hast. Ist die von dir oder ist das eine Aufgabe die du bekommen hast?
Die Struktur kommt von mir. Allerdings lasse lasse ich mich gerne für sinnhaftere ansätze begeistern bin halt noch ziemlicher anfänger.
 

mihe7

Top Contributor
Also meinst du in diesem fall in GUI die Klasse "logic.viewLogic.PanelLoader" zu imporieren, um nicht den kompletten pfad angeben zu müssen ?
Ja. Der "komplette Pfad" nennt sich übrigens vollständig qualifizierter Name oder fully qualified name, kurz FQN.

Ich würde erstmal via Strg+H den Part logic.viewLogic. erstmal durch nichts ersetzen und anschließend per Strg+Shift+I die Imports fixen.

Während des Tippens kannst Du einfach die Autovervollständigung nutzen (Teil des Klassennamens schreiben, Strg+Space).
 
K

kneitzel

Gast
Sorry für die späte Antwort. Deine Aufgliederung sieht schon relativ gut aus und entspricht in etwa dem MVC Pattern. Da erkennst Du: Das Model sollte noch irgendwo zu finden sein :)

Der PanelLoader kommt natürlich weg (Nur ein Vorschlag / meine Sicht).

Das mit dem logic.viewLogic habe ich noch nicht so ganz verstanden. Was genau soll da hinein kommen? Wenn Du spezielle Effekte hast, dann mag das in eigenständigen Klassen Sinn machen, aber ist das dann ein Controller (Der was mit dem Model macht und das dann einer View zur Verfügung stellt) oder ist das eher Teil einer View (Eine Visualisierung - der Controller hat gesagt, dass sich etwas ändert, also wird das visuell dargestellt)

Aber das sind dann Detail Fragen, die man sich immer stellen sollte und ohne Details ist es schwer, da wirklich sicher etwas zuzuordnen.

Wenn Du den Code etwas lesbarer gestaltet hast, dann kannst Du Ihn gerne noch einmal einstellen - dann kann man auch so Details noch absprechen (Natürlich nur, so du dies wünscht!).
 

tun3d

Mitglied
Danke für die Rückmeldung !
Da erkennst Du: Das Model sollte noch irgendwo zu finden sein :)
Ich habe es so gelernt das Model mit "Data" gleichzusetzen ist. Handelt es sich dabei dann um eine Namenskonvention dann ändere ich das natürlich oder fehlt in meiner Überlegung etwas?
Das mit dem logic.viewLogic habe ich noch nicht so ganz verstanden. Was genau soll da hinein kommen?
Also ich dachte es währe sinnvoll alles was mit der Optik zutun hat nocheinmal von anderen logik vogängen zu unterscheiden weshalb ich nochmals ein eigenens Packet erstellt habe. Dort rein sollte alles was die optik betrifft aber nichts mit den vorgängen im hintergrund zutun hat also z.B.: Farbänderungen beim Klicken oder , das erstellen von optischen objekte (z.b. panels) etc. ich glaube die überlegung war eigentlich vorrangig so das ich es übersichtlicher fand, aber auch da : Wenn es dahingehend Konventionen oder "best practices" gibt immer her damit :D


Ich kann halt überhaupt nicht einschätzen ob es sinnvoll bzw. Zielführens so "Kleinteilig" zu denken oder ob es bei der art der Applikation nicht "nötig" ist, da ich den aufwand der Aufgabe nur schwer einschätzen kann und hier etwas im freiflug und alleine bin.


Hinzu Kommt das ich auf einem Offline System arbeite und den Code erstelle und ein online System habe für Recherche welches es nicht zulässt Dateien zu bewegen oder irgendwas zu Installiern. Alles etwas suboptimal :)

zurück zum Topic: Ich habe es leider immernoch nicht geschafft Mein "Platzhalterpanel" mit einem individuellen pannel zu ersetzen. Irgendwie will nichts funktionieren... Ich habe als halblösung ein "CardLayout" gefunden wobei wenn man später unterschiedliche Ebenen mit unterschiedlichen Verfahren hat, welche jeweils mehrere Panels benötigen und unterschiedlichen Userrechten, wird das glaube ich nicht wirklich Zielführend sein....

Dies bzgl.: Ich habe versucht über getter und setter mein Panel zu ersetzen aber auch das will er irgendwie nicht... hierzu das:
[CODE lang="java" title="einmal der code vom Button"]AddPanel addPanelObjekt = new AddPanel();
pnlMain.removeAll();
getPnlMain();
setPnlMain(addPanelObjekt);
pnlMain.setVidible(true);
pnlMain.repaint(); //war der neuste versucht aber hat auch nichts geändert ...[/CODE]

getter und setter methoden habe ich via Alt+Einfügen automatisch erstellen lassen.

Ich weiß einfach nicht genau wie ichs angehen kann bzw. sollte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Netbeans: Import von Externen Packet Java Basics - Anfänger-Themen 5
C Packet inout.Console Java Basics - Anfänger-Themen 3
M Packet importieren Java Basics - Anfänger-Themen 9
G Klasse einem Packet hinzufügen Java Basics - Anfänger-Themen 3
R Klasse aus Packet kann nicht außerhalb zugreifen Java Basics - Anfänger-Themen 8
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
U Breite von Textfeldern trotz Layoutmanager Java Basics - Anfänger-Themen 4
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
P Apache Derby wird in Eclipse trotz Anbindung nicht gefunden Java Basics - Anfänger-Themen 6
Kotelettklopfer Output korrekt trotz falschem Lösungsweg !? Java Basics - Anfänger-Themen 99
P NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap trotz vorhandener Klasse? Java Basics - Anfänger-Themen 10
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
J bundel - Datei wird nicht gefunden. Trotz STRG-SHIFT-J Java Basics - Anfänger-Themen 2
U UnsupportedClassVersionError trotz neuster JRE und JDK Version Java Basics - Anfänger-Themen 7
J Unterschiedliche Ordnerstrukturen trotz gleicher Entwicklungsumgebungen Java Basics - Anfänger-Themen 3
M java.io.FileNotFoundException trotz dass Verzeichnis korrekt angegeben ist! Java Basics - Anfänger-Themen 20
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
L Methoden if Bedingung trotz Erfüllung, nicht angesprochen Java Basics - Anfänger-Themen 12
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
C Threads SwingWorker läuft trotz cancel weiter Java Basics - Anfänger-Themen 22
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
D javac kann trotz PATH-Eintrag nicht gefunden werden (Hello World) Java Basics - Anfänger-Themen 10
P Threads Trotz Threads wird nur 1 Prozessorkern ausgelastet Java Basics - Anfänger-Themen 7
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
X Array trotz Befüllung "null" Java Basics - Anfänger-Themen 11
M Arrayfelder werden trotz Beschränkung unbeschrenkt ausgegeben Java Basics - Anfänger-Themen 2
Fab1 alte Java Datei wird ausgeführt (trotz Änderung) Java Basics - Anfänger-Themen 4
O Downloaden: Trotz If Abfrage wird Datei heruntergeladen Java Basics - Anfänger-Themen 2
M Datentypbewahrung trotz Erbung Java Basics - Anfänger-Themen 12
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
N Input/Output EOF-Exception trotz Fehlerüberprüfung Java Basics - Anfänger-Themen 2
U Übersicht trotz mehrdimensionaler Arraylisten Java Basics - Anfänger-Themen 17
S Java Heap space trotz -Xmx1024 Java Basics - Anfänger-Themen 10
J trotz Error weitermachen Java Basics - Anfänger-Themen 4
V Kein neuer Thread trotz Runnable Java Basics - Anfänger-Themen 4
X JFrame als JAR unsichtbar trotz Exception Handling Java Basics - Anfänger-Themen 5
Y Trotz add wird Image in GradBagLayout nicht angezeigt Java Basics - Anfänger-Themen 5
L Polymorphie <identifier> expected trotz "Angabe" Java Basics - Anfänger-Themen 2
O ausgabe spinnt trotz erfolgreichem kompilieren Java Basics - Anfänger-Themen 2
D Jar klappt nicht trotz main Methode Java Basics - Anfänger-Themen 19
S JButton trotz Box-Layout skalieren Java Basics - Anfänger-Themen 6
D OpenCSV Fehllender Konstruktor trotz import und Buildpath Eintrag Java Basics - Anfänger-Themen 1
X dll löschen trotz zugriff durch java programm Java Basics - Anfänger-Themen 5
U if-Anweisung trotz Division/0 Java Basics - Anfänger-Themen 6
K BufferedReader/Writer trotz Cache? Java Basics - Anfänger-Themen 9
D Ein boolean[] Array größer als 63.000.000 erstellen? trotz -Xms und -Xmx.... Java Basics - Anfänger-Themen 7
Q Listen - DefaultListModel trotz Design ueber GUI? Java Basics - Anfänger-Themen 10
A Trotz Thread ist Program nicht erreichbar Java Basics - Anfänger-Themen 3
Q Vector verändert trotz final seine Größe Java Basics - Anfänger-Themen 5
A kein zugriff auf variable trotz public? Java Basics - Anfänger-Themen 3
D nicht genug speicher - profiling trotz error Java Basics - Anfänger-Themen 5
D Buttons gehen trotz enebled(false) Java Basics - Anfänger-Themen 8
J Spielfigur wird trotz erfolgreich aufgerufener Methode nicht Java Basics - Anfänger-Themen 22
H javac Befehl trotz Variablen einbindung ned gefunden Java Basics - Anfänger-Themen 23
C Trotz "synchronized" unerwartete Ausgabe Java Basics - Anfänger-Themen 2
K Midi stoppt trotz stop button nicht Java Basics - Anfänger-Themen 3
R windowclosing - fenster schließt immer trotz abfrage Java Basics - Anfänger-Themen 2
C Thread läuft und läuft, trotz interrupt() Java Basics - Anfänger-Themen 9
T laagen trotz Double-Buffering Java Basics - Anfänger-Themen 5
S ClassNotFoundException trotz JAR Einbindung in Eclipse Java Basics - Anfänger-Themen 2
T tooltip trotz gedrückter maustaste Java Basics - Anfänger-Themen 2
0 NoSuchMethodError: main trotz vorhandener Main Methode? Java Basics - Anfänger-Themen 9
Silver-Blue mehrere Instanzen einer Klasse, trotz Random immer das Selbe Java Basics - Anfänger-Themen 7
X trotz gleicher variablen nicht equal Java Basics - Anfänger-Themen 5
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
P Problem mit richtiger Formatierung :( Java Basics - Anfänger-Themen 1
E Richtiger Programmierstil ? Java Basics - Anfänger-Themen 51
F Richtiger Start in Java? Java Basics - Anfänger-Themen 2
G [Hibernate] Richtiger ColumnType Java Basics - Anfänger-Themen 2
E Drei zahlen sortieren und in richtiger Reihenfolde ausgeben. Java Basics - Anfänger-Themen 15
frau-u Probleme mit richtiger Verwendung von FileInputStream Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben