eXma » Diskutieren » Computer und Technik
Startseite - Veranstaltungen - Mitglieder - Suche
Vollständige Version anzeigen: Java, ich raffs nich
Socres
So, ich mehr hier an nem kleinen Projekt rum....

Ich will daß mein Fenster beim drücken auf Schließen eben nicht die ganze Applikation abgeschossen wird sondern nur das Fenster unsichtbar wird ( setVisible(false) )...

ich hab die Applikation mit NetBeans und den zugehörigen Templates für "Desktop Apllication" erstellt um den anderen, die da irgendwie ja och noch mitmachen müssen, das ganze nen bissl zu vereinfachen....

Ich hab mein Hauptfenster und das soll wie gesagt unsichtbar werden (und bei ner Option im Taskleisten-Icon-Popup wieder sichtbar) letzteres funktioniert wunderbar und ersteres nur wenn ich mir nen extra-nubsi mache dem ich die Action zuweise (bzw selbst nen Listener mache und dort bei actionPerformed() setVisible(false) ) mache...

jetzt will ich aber, daß das fenster beim "schließen " eben genau das selbe tut...

ich hab schon alles probiert und weiß echt nicht mehr was ich machen soll...

das richtige JFrame scheine ich mit:

app.getFrame() ---> in der GUI-Klasse

und

CODE
MAINWINDOWKLASSE.getApplication().getMainFrame()


zu bekommen (zumindest kann ich an beiden Stellen mit setTitle("schnickschnack") den Fenstertitel ändern)

wenn ich aber nun mit:

CODE
RICHTIGESFRAME.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);


und

CODE
RICHTIGESFRAME.addWindowListener(new WindowListener() {

...abstrakte methoden, blablubb, reingetragen RICHTIGESFRAME.setVisible(false);

});


versuche das Fenster am töten zu hindern passiert genau nix, außer daß das Programm geschlossen wird... das is aber scheiße!!!!!!!

ich rast hier echt glei aus....


will jetzt och nich meinen ganzen Quelltext posten... is aber ganz einfach mit der standard-vorlage für Java Desktop Application in NetBeans nachzuvollziehen...


irgendwer ne idee?

danke

//mod: bitte CODE Tags nutzen: [CODE]
stabilo
Passiert dein setVisible(false) in der
CODE
WindowListener.windowClosing(WindowEvent e)
?

Wegen
"DO_NOTHING_ON_CLOSE (defined in WindowConstants): Don't do anything; require the program to handle the operation in the windowClosing method of a registered WindowListener object."
Socres
jup genau da hab ichs hingetan:

@mod: ich war zu faul code tags zu nehmen :P jetzt aber

CODE

.
.
.
app.getFrame().setDefaultClosingOperation(JFrame.DO_NOTHING_ON_CLOSE);

app.getFrame().addWindowListener(new WindowListener() {

           public void windowOpened(WindowEvent arg0) {
           }

           public void windowClosing(WindowEvent arg0) {
               app.getFrame().setVisible(false);
           }

           public void windowClosed(WindowEvent arg0) {
           }

           public void windowIconified(WindowEvent arg0) {
           }

           public void windowDeiconified(WindowEvent arg0) {
           }

           public void windowActivated(WindowEvent arg0) {
           }

           public void windowDeactivated(WindowEvent arg0) {
           }
       });
.
.
.


so hab ichs gemacht, und es bewirkt, wie gesagt, genau garnüscht. ;(


€: es scheint irgendwas damit zu tun haben, daß das fenstern kein JFrame ist (also ist es schon) sondern das Programm ist irgendwie eine SingleFrameApplication oder son... wacko.gif
I.I
rofl.gif rofl.gif

Hast du schon mal mit der Java Reference gearbeitet?

JFrame


Ohne Mist! Das was du machen willst ist die Defaulteinstellung (HIDE_ON_CLOSE) eines JFrame's . Das Fenster wird versteckt wenn du auf close drückst. Mit *.show() kannst du ihn wieder sichtbar machen.


Das ganze wäre nicht so witzig, wenn du mir, vorhin in Englisch, nicht versucht hättest Events und Actions zu erklären.
Socres
glaubst du ich bin mitm klammersack gepudert oder was?

-------------------------------

also so einfach gings nicht, (habs inzwischen hinbekommen) man brauch für diese SingleFrameApplication-dinger einen exitlistener.

dieser besteht aus zwei actions: canExit und exit(oderso)

canExit liefert boolean zurück und nur wenn dort true zurückgeliefert wird schließt das programm...

allerdings betrifft das dann alle listener die mit quit() verbunden sind (oder so), dh man kann nicht einfach nen anderen "schließen"-knopp (bspw in der tray) mit der globalen schließen-aktion verknüpfen, sondern brauch für jeden einzelnen nubsi, der das programm wirklich schließen soll, nen eigenen handler der System.exit() ausführt...

is sicher nicht ganz sauber, funktioniert aber...

ich muss erstma los, ich schreib die lösung morgen nochmal mit code hier rein, vieleicht brauchs nochma jemand (wenn ichs nicht vergesse)

-------------------------

und @ timmi: junge bevor du dich in sachen reinhängst von denen du augenscheinlich nicht die geringste ahnung zu haben scheinst, kümmer dich erstmal um deinen blöden knopf, der wahrscheinlich immer noch nicht das tut was er soll... zumindest war das was ich vorhin auf deinem monitor sehen konnte zioemlicher hokuspokus... jungejunge
I.I
Zitat(Socres @ 26 Apr 2010, 21:18)
glaubst du ich bin mitm klammersack gepudert oder was?

-------------------------------

also so einfach gings nicht, (habs inzwischen hinbekommen) man brauch für diese SingleFrameApplication-dinger einen exitlistener.

dieser besteht aus zwei actions: canExit und exit(oderso)

canExit liefert boolean zurück und nur wenn dort true zurückgeliefert wird schließt das programm...

allerdings betrifft das dann alle listener die mit quit() verbunden sind (oder so), dh man kann nicht einfach nen anderen "schließen"-knopp (bspw in der tray) mit der globalen schließen-aktion verknüpfen, sondern brauch für jeden einzelnen nubsi, der das programm wirklich schließen soll, nen eigenen handler der System.exit() ausführt...

is sicher nicht ganz sauber, funktioniert aber...

ich muss erstma los, ich schreib die lösung morgen nochmal mit code hier rein, vieleicht brauchs nochma jemand (wenn ichs nicht vergesse)

-------------------------

und @ timmi: junge bevor du dich in sachen reinhängst von denen du augenscheinlich nicht die geringste ahnung zu haben scheinst, kümmer dich erstmal um deinen blöden knopf, der wahrscheinlich immer noch nicht das tut was er soll... zumindest war das was ich vorhin auf deinem monitor sehen konnte zioemlicher hokuspokus... jungejunge
*



Genau. Wenn du dein Programm oder dein Projekt nicht richtig einstellen kannst, dann kann ich auch nix dafür. Fakt ist bei mir funktioniert die Defaultvariante auf Windows und Linux.

Keine Ahnung was du dir einbildest gesehen zu haben (ich habe meines Erachtens nur den Visual Editor ausprobiert). Ich bin mir relativ sicher das ich schon ein paar tausend Zeilen mehr Code in Java geschrieben habe als du. Also kümmer dich lieber um dich und deine sinnlosen Versuche einen JFrame unsichtbar zu machen.
Socres
junge such dir hobbies oder so, du gehst mir aufs schwein.

es geht nicht so wie dus sagst, das habe ich ausprobiert, da is es scheiß egal ob da nun HIDE_ON_CLOSE oder DO_NOTHING_ON_CLOSE (letzteres wollte ich btw deswegen verwenden, weil ich beim schließen noch andere dinge tun will als nur das fenster unsichtbar machen) in setDefaultClosingOperation steht...
Bei einem stinknormalen JFrame funktioniert das natürlich, so schlau bin ich selbst!

ich habs grad nicht hier (weil Desktop nicht Notebook) aber wenn dus dir gern anschauen willst, ich bin dann bei Datenbanken. (ich schätze du eher nicht)



und jetzt noch in eigener sache: mir ist in meinem ganzen leben noch niemand begegnet der es geschafft hat mir in dem maße nachhaltig und stetig die nerven zu rauben wie du.

dein gehampel, deine dummen, wirklich unangebrachten sprüche, ja sogar wie du läufst und dabei grinst, dein benehmen den dozenten gegenüber (ja da muss ich mich wirklich fremdschämen, das is wie in der hauptschule förderschule 8. klasse), deine besserwisserei ohne überhaupt zu wissen worums überhaupt geht sowie tausend dinge mehr...

...all das geht mir so dermaßen auf die nüsse, daß ich mit freude zugucken würde wie dich irgend was schweres ausm 10. stock trifft.
junge, du bist nich ganz klar im kopp, das wissen wir nun alle, entweder reiß dich am zippel oder mach ne therapie, oder friss wenigstens ordentliche tabletten und nich irgendwelche hippie-heilkräuter. das hält nämlich echt keiner aus.
I.I
Zitat(Socres @ 27 Apr 2010, 10:48)
junge such dir hobbies oder so, du gehst mir aufs schwein.

es geht nicht so wie dus sagst, das habe ich ausprobiert, da is es scheiß egal ob da nun HIDE_ON_CLOSE oder DO_NOTHING_ON_CLOSE (letzteres wollte ich btw deswegen verwenden, weil ich beim schließen noch andere dinge tun will als nur das fenster unsichtbar machen) in setDefaultClosingOperation steht...
Bei einem stinknormalen JFrame funktioniert das natürlich, so schlau bin ich selbst!

ich habs grad nicht hier (weil Desktop nicht Notebook) aber wenn dus dir gern anschauen willst, ich bin dann bei Datenbanken. (ich schätze du eher nicht)
und jetzt noch in eigener sache: mir ist in meinem ganzen leben noch niemand begegnet der es geschafft hat mir in dem maße nachhaltig und stetig die nerven zu rauben wie du.

dein gehampel, deine dummen, wirklich unangebrachten sprüche, ja sogar wie du läufst und dabei grinst, dein benehmen den dozenten gegenüber (ja da muss ich mich wirklich fremdschämen, das is wie in der hauptschule förderschule 8. klasse), deine besserwisserei ohne überhaupt zu wissen worums überhaupt geht sowie tausend dinge mehr...

...all das geht mir so dermaßen auf die nüsse, daß ich mit freude zugucken würde wie dich irgend was schweres ausm 10. stock trifft.
junge, du bist nich ganz klar im kopp, das wissen wir nun alle, entweder reiß dich am zippel oder mach ne therapie, oder friss wenigstens ordentliche tabletten und nich irgendwelche hippie-heilkräuter. das hält nämlich echt keiner aus.
*


1.) Du hast ne lustige Art deine entlarvten Möchtegernskills zu übertuschen
2.) Nimm einen JFrame junge ...
3.) Wenn du nicht weißt wie man eine Funktion überschreibt kann ich dir nicht helfen
2.) Den Rest nehme ich als Kompliment und fühle mich sehr geschmeichelt ... und nun ab husch husch zu Datenbanken damit du noch was lernst
stabilo
Muss das hier sein?
mcnesium
so meine lieben kleinen, jetzt geht ihr beide mal vor die tür und sagt euch dann gegenseitig, was ihr beim anderen nicht mögt. hauen dürft ihr euch auch, wenns sein muss.

aber nich hier busted_red.gif
Stormi
hihi tongue3.gif
lusch3
bild kann nicht angezeigt werden
Pic related.
Socres
Zitat(mcnesium @ 27 Apr 2010, 12:16)
so meine lieben kleinen, jetzt geht ihr beide mal vor die tür und sagt euch dann gegenseitig, was ihr beim anderen nicht mögt. hauen dürft ihr euch auch, wenns sein muss.

aber nich hier busted_red.gif
*



naja der is nicht da, also was soll ich machen...

und nein ich nehme keinen JFrame, einfach so, weil ich es nicht will, basta

problem ist eh gelöst, also kann der thread auch geschlossen werden...
avu
NaziVergleich.activate(); // !
lovehina
Zitat(avu @ 27 Apr 2010, 14:27)
NaziVergleich.activate(); // !
*

If(1==1){
System.out.println("ihr seid doch alle hitler!");}
Aber eigentlich können die ruhig weitermachen, mir hellt es grad die zugfahrt auf. :p

edit: mein mobilteleofn kann keine geschweiften klammern, ohne dass ich das tastenlayout umstelle...

@Socres: Timmey hat gesagt du stinkst und kannst mal gar nix.
ck
Zitat(Socres @ 27 Apr 2010, 12:46)
problem ist eh gelöst, also kann der thread auch geschlossen werden...
*

Um den Thread abzurunden: wie hast Du das Problem denn nun gelöst?
Polygon
Zitat(Socres @ 26 Apr 2010, 21:18)
allerdings betrifft das dann alle listener die mit quit() verbunden sind (oder so), dh man kann nicht einfach nen anderen "schließen"-knopp (bspw in der tray) mit der globalen schließen-aktion verknüpfen, sondern brauch für jeden einzelnen nubsi, der das programm wirklich schließen soll, nen eigenen handler der System.exit() ausführt...
*


Was passiert denn dann jetzt bei "Alt+F4" oder ähnlichen Standard-Schliessen-Tastenkombis?