JInternalFrame programmgesteuert von iconifiable wieder normal anzeigen

Guten Tag
Ich neu hier und auch neu in Java. (möchte von VB auf Java umsteigen. Also MS-Geschädigt)
Ich hoffe, ich bin im richtigen Forum und mache auch sost nichts Falsch.

Meine Frage:
Ist es möglich ein JInternalFrame vom minimierten wieder in den Normal-Zustand zu setzen.
d.H. ich versuche schon mehrere Wochen folgendes.
Der Anwender klickt auf den Button Adressen und das Adressformular wird geladen. Das funktioniert auch soweit. Wenn jetzt aber das Adressformular minimiert wurde und der Anwender geht nochmals über den Button Adressen, sollte es vom minimierten Zustand wieder in dem Vorherigen Zustand angezeigt werden. Wie wenn der auf das minimierte Fenster klickt.

Die JInternalFrame’s werden in einem JDesktopPane angezeigt, welches sich auf einem JFrame (HM) befindet.
Die JInternalFrame werden über eine DesktopFrame-Klasse aufgebaut. (Habe ich im Internet gefunden und funktioniert perfekt)

Bin für jede Hilfe dankbar. (vllt. ein kleiner Beispiel-Code?)
Habe haufenweise PHPs gelesen und div. Foren durchforstet. Auch die eclilpse-Hilfe bemüht, aber meine Englischkenntnisse sind sehr, SEHR bescheiden.

Vielen Dank und Gruss
Richi

Ps. Was passiert, wenn man das Häckchen bei „Experten automatisch anschreiben“ ankreuzt?

Hallo Forum
ich weiss jetzt nicht was ich falsch gemacht habe, aber ich habe keine Antwort erhalten…
Vielleicht war das eine zu dämliche Frage, aber ich habe es herausgefunden.

Ich hatte das JInternalFrame falsch deklariert:
-> private static JInternalFrame meinFrame;

sollte aber heissen:
-> private static JInternalFrame meinFrame = new JInternalFrame();

und dann habe ich auch auf das minimierte JInternalFram zugriff.

Wie kann ich jetzt den Theard als geschlossen markieren?
Vielen Dank
Richi

Hallo,

ich weiss jetzt nicht was ich falsch gemacht habe, aber ich
habe keine Antwort erhalten…

Deiner Frage war nicht zu entnehmen was genau du seit Wochen versuchst. Fehler zu finden ohne den Sourcecode oder konkrete Fehlermeldungen zu kennen ist ein ziemlich hilfloses Unterfangen.

Ich hatte das JInternalFrame falsch deklariert:
-> private static JInternalFrame meinFrame;

sollte aber heissen:
-> private static JInternalFrame meinFrame = new
JInternalFrame();

Das passt aber nicht zu deinem Ursprungsposting, du hattest geschrieben das Frame wird zunächst angezeigt. Dann muss es zuvor auch initalisiert worden sein. Ob das direkt bei der Deklaration von meinFrame oder später geschieht ist eigentlich nicht das entscheidende. Vermutlich hast du unbewusst noch andere Code-Stellen geändert. Oder gab es eine NullPointerException bei verwendung von meinFrame? Dann hätte es aber auch nicht angezeigt werden können.

Man hätte bei dir natürlich nachfragen können und den Sourcecode anfordern. Aber bedenke bitte, dass sich hier alle Antwortenden freiwillig in ihrer Freizeit um die Probleme anderer kümmern. Leider ist es so, dass eine Vielzahl von (insbesonders neu angemeldeten) Usern hier mal kurz eine Frage einstellen, aber nicht auf Rückfragen antworten oder auf Antworten eingehen. Wenn man ein paar Mal das Gefühl hatte, dass der Fragesteller die Antworten gar nicht liest sinkt die Lust am Antworten deutlich. Da kannst du nichts dafür, aber es ist eben so.

Gruß
Heavy

Danke Heavy, ja war ziemlich hilflos. Aber ich werde mich bessern, versprochen.

Mit folgendem Code erstelle ich die JInternalFrame:

public class DesktopFrame extends JFrame{

 /\*\*
 \* 
 \*/
 private static final long serialVersionUID = 1L;
 private JDesktopPane desk;

 public DesktopFrame() {
 // TODO Automatisch generierter Konstruktorstub
 super("Richis Office");
 this.desk = new JDesktopPane();
 desk.setDesktopManager(new DefaultDesktopManager());
 setContentPane(desk);
 //addWindowListener(new WindowClosingAdapter(true));
 }

 public void addChild(JInternalFrame child, int x, int y, int w, int h, String name){
 child.setName(name);
 child.setLocation(x, y);
 child.setSize(w, h);
 child.setDefaultCloseOperation(JInternalFrame.DISPOSE\_ON\_CLOSE);
 desk.add(child);
 child.setVisible(true);
 }
}

class ChildFrame extends JInternalFrame{
 /\*\*
 \* 
 \*/
 private static final long serialVersionUID = 1L;

public ChildFrame(String title)
 {
 super(title, true, true, true, true);
 setBackground(Color.cyan);
 }
}

und wenn ich diese JIF erst beim klicken auf z.B. Adressen im ActionListener erstelle, und zwar mit dem Code:

-> meinFrame = new ChildFrame(„Debitoren“ + „-“ + mnAdresssen.getText());
-> HM.addChild(frmDEB, 10, 10, 900, 800, „Debitoren“);

habe ich keinen Zugriff wenn ich oben nur „private static JInternalFrame meinFrame“ deklariere sondern erst wenn ich das dem meinFrame noch sage dass es ein neues JInternalFrame ist: „… = new JInternalFrame()“ und ich hatte gedacht, das mache ich doch beim ActionListener mit:
„meinFrame = new ChildFrame(„Debitoren“ + „-“ + mnAdresssen.getText());“

Bei VB konnte ich bei einem klick-Ereignis mit „public XY as Form = new meineForm“ -> „meineForm.show“ eine Instanz eines child-Form öffnen und konnt darauf zugreiffen, selbst aus einem anderen child-Formular.

Und genau das muss ich jetzt lernen, was MS in den dot.Net Frameworks schon vorne weg drin hatte, selber zu programmieren und vorallem zu verstehen wie es funktioniert.
Sage ja MS-Geschädigt.

Nachtrag:
Hab einmal meinFrame und einmal frmDEB geschrieben. Also bei mir hab ich schon alles gleich. (frmDEB -> Adressenformular für Debitoren)
Sorry.
Gruss
Richi