Hallo,
ich betrachte das so: Es gibt zwei Möglichkeiten. Entweder ist meine Frage absolut dumm und leicht zu beantworten, oder sie ist unbeantwortbar (ohne den gesamten Code zu kennen). Ich versuche mal, das wichtigste festzuhalten: Ich schreibe ein Programm (ein Spiel, in schlechtem Stil, mit denglishen Funktions-/Variablen-/Objekt-/Klassennamen), das im Moment noch alles andere als spielbar ist, allerdings schon einige hundert Zeilen hat (ca 600). Im Moment geht es nur darum, etwas auszuwählen, und intelligent, wie ich bin, habe ich natürlich niemals eine Komponete aus meinem Haupt-JPanel entfernt, sondern alle immer nur auf sichtbar und nicht sichtbar gesetzt (was teilweise sogar Sinn macht, da so mancher Button und so manches Textfeld mehr als einmal angezeigt wird). Nun bin ich mit dem ersten Teil des Programmes, eben dem, in dem man nur alles mögliche auswählen soll, schon fast fertig, und wollte einen JButton erstellen, der einen das ganze abschließen lässt.
[JAVA=70]protected JButton fertigButton = null;[/code]
Diesen Button habe ich zunächst wie jeden anderen im Kontruktor initialisiert, zum Panel
[JAVA=43]protected JPanel panel = null;[/code]
[JAVA=76]panel = new JPanel();[/code]
hinzugefügt und mit setVisible(false) auf nicht sichtbar gesetzt.
Später, als der Button dann gebraucht wurde, in der Funktion "weiter()", in der das Layout des Panels zuvor entfernt worden war
[JAVA=281]panel.setLayout(null);[/code]
wurde erst die Position gesetzt
und er wurde auf sichtbar gestellt
. Und das ganze hat NICHTS gebracht. Der Button war nicht sichtbar. Egal, was ich ausprobiert habe, ob jetzt vor dem hinzufügen zum JPanel auf unsichtbar setzen oder danach, es hat alles nichts gebracht; die einzige Möglichkeit, ihn später sichtbar zu machen, war, ihn im Kontruktor nicht unsichtbar zu machen, was aber zur Folge hatte, dass der Button ganz zu Anfang schon zu sehen war (was aber nicht so sein sollte). Ja, ich habe versucht, die Position anders zu setzen, und das hat, wie gesagt, nichts gebracht. Was vielleicht noch hilfreich sein könnte: in jeder Funktion, die ein neues "Formular", bzw einen anderen Teil des GUI lädt, habe ich die Funktion
aufgerufen, die alle Komponenten im Panel auf nicht sichtbar stellt:
Das heißt also, der Button wird zwei mal auf unsichtbar gestellt (was aber auf alle anderen Buttons, und das sind viele, keinen besonderen Effekt hatte). Ansonsten wird der Button GENAU SO behandelt wie alle anderen, zumindest war das so, bis ich herumprobiert habe (was auch nichts gebracht hat), um es vielleicht irgendwie hinzukriegen. Inzwischen sieht die Codestelle, an der der Button anzeigt werden sollte, so aus:
Klappt genauso wenig wie alles andere, was ich ausprobiert habe.
Nun also die entscheidende Frage: Ist mir noch zu helfen?!
~Das Wollvieh
ich betrachte das so: Es gibt zwei Möglichkeiten. Entweder ist meine Frage absolut dumm und leicht zu beantworten, oder sie ist unbeantwortbar (ohne den gesamten Code zu kennen). Ich versuche mal, das wichtigste festzuhalten: Ich schreibe ein Programm (ein Spiel, in schlechtem Stil, mit denglishen Funktions-/Variablen-/Objekt-/Klassennamen), das im Moment noch alles andere als spielbar ist, allerdings schon einige hundert Zeilen hat (ca 600). Im Moment geht es nur darum, etwas auszuwählen, und intelligent, wie ich bin, habe ich natürlich niemals eine Komponete aus meinem Haupt-JPanel entfernt, sondern alle immer nur auf sichtbar und nicht sichtbar gesetzt (was teilweise sogar Sinn macht, da so mancher Button und so manches Textfeld mehr als einmal angezeigt wird). Nun bin ich mit dem ersten Teil des Programmes, eben dem, in dem man nur alles mögliche auswählen soll, schon fast fertig, und wollte einen JButton erstellen, der einen das ganze abschließen lässt.
[JAVA=70]protected JButton fertigButton = null;[/code]
Diesen Button habe ich zunächst wie jeden anderen im Kontruktor initialisiert, zum Panel
[JAVA=43]protected JPanel panel = null;[/code]
[JAVA=76]panel = new JPanel();[/code]
hinzugefügt und mit setVisible(false) auf nicht sichtbar gesetzt.
Später, als der Button dann gebraucht wurde, in der Funktion "weiter()", in der das Layout des Panels zuvor entfernt worden war
[JAVA=281]panel.setLayout(null);[/code]
wurde erst die Position gesetzt
Java:
fertigButton.setLocation(350, 420);
Java:
fertigButton.setVisible(true);
Java:
machsFensterLeer();
Java:
public void machsFensterLeer() {
Component[] comps = panel.getComponents();
for(int i=0;i<comps.length;i++) {
comps[i].setVisible(false);
}
}
Java:
fertigButton = new JButton("Das soll funktionieren!!!");
fertigButton.setLocation(350, 420);
panel.add(fertigButton);
fertigButton.setVisible(true);
Nun also die entscheidende Frage: Ist mir noch zu helfen?!
~Das Wollvieh