Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Klassen verknüpfen, Swingobjekte mit Klassen verknüpfen
Ich habe eine Classe A und eine Classe B.
Die Classe A enthält ein JPanel panel3 und die Classe B ein JLabel label8 in der B() Methode.
Wie verknüpfe ich jetzt das label8 aus der Classe B mit dem Panel panel3 in der Classe A ?
Ich habe schon B obj = new B(); in Classe A erstellt, und dann panel3.add(label8); geschrieben, leider kann er das label8 nicht finden o.0
mit panel.add(obj.label8); habe ich es auch versucht.
PS: die Classe B ist in einem anderen Fenster.
Könnte mir jemand sagen ,wie ich Swingobjekte mit anderen Classen verknüpfen kann ?
public class B {
private JLabel label8;
public B() {
this.label8 = new JLabel("test");
//.....evtl. noch mehr zeugs :D
}
public JLabel getLabel8() {
return this.label8;
}
}
in klasse a kannst du dann das machen was du eig. wolltest
Muss ich jedes Bauteil des Panels wie Buttons,Labels und TextFields returnen ?
Kann man nicht einfach return panel1; in eine Methode paken ?
Es ist doch sehr umständlich ,wenn man zwei separate(in verschiedenen Klassen) Panels verbinden möchte, man kann im ersten Panel ein Objekt erstellen, muss dann aber alle Labels,TextFields und co einzeln in dem ersten Panel adden ? o.0
Mein Programm beläuft sich auf über 2000 Zeilen..damit es nicht so übersichtlich wird, wollte ich neue Panels in anderne Klassen erstellen, leider kann ich das panel nciht einfach returnen, sondern muss alle Bauteile des neuen Panels erst returnen und dann noch adden -.- gehts nicht einfacher?
KlasseA hat PanelA und Klasse B hat PanelB ( PanelB hat aber 100xlabels).
Nun will ich das PanelB in der KlasseA anzeigen lassen.Mit return PanelB geht es aber nicht.
Ich muss nun return PanelB, 100x return labels in KlasseB schreiben und in KlasseA auch 100x add. (labels) schreiben...
>>Ich kenne mich mit Gui schon aus...
aber leider nicht mit oop
wieso willst du denn die labels returnen und dann nochmal in panelA adden? lass deine klasse B von jpanel erben(siehe oben) . panel b hat die ganzen labels doch dann schon geaddet ??!
Was heißt es geht nicht? Es muss gehen Kommt eine Fehlermeldung vom Compiler? Oder tut das Programm einfach nicht das, was du erwartest?
Ich schätze mal wir sparen uns ne Menge Gelaber wenn du einfach mal deinen Code zeigst, d.h. die KlasseA und KlasseB, und sagst wo sich der Ausschnitt befindet, in dem du das PanelB in KlasseA anzeigen lassen willst.
>>Ich kenne mich mit Gui schon aus...
aber leider nicht mit oop
wieso willst du denn die labels returnen und dann nochmal in panelA adden? lass deine klasse B von jpanel erben(siehe oben) . panel b hat die ganzen labels doch dann schon geaddet ??!
Ich will doch nur PanelB aus der KlasseB in der KlasseA anzeigen lassen -.-
Das PanelB hat aber hunderte Labels aus der KlasseB geadded.
So muss ich jedes Label einzeln returnen , um es dann in der KlasseA zu adden.
Ich wollte aber nur das PanelB returnen und einfach in KlasseA adden, damit alle Labels auch auf dem PanelB in der KlasseA angezeigt werden.
also ich versuchs noch einmal, wenn du danach noch immer kein code postest, von der sache die angeblich nicht gehen soll, dann passe ich (nicht böse gemeint, aber ich weiss nicht wie ichs noch weiter erklären könnte, vllt kanns ja wer anders dann übernehmen )
in klasse B (da du ja anscheinend nicht von jpanel erbst) hast du ja sichelrich eine klassenvariable JPanel panelName ... (wo du dann deine ganzen labels drauf addest)..dieses panel kannst du zurückgeben, in dem du auch da ein getter schreibst: