Avatar billede prom Nybegynder
14. april 2002 - 23:54 Der er 12 kommentarer og
1 løsning

Centrering af JFrame

Ganske simpelt (eller hvad):
Hvordan får jeg en Frame eller JFrame til at stå centreret på skærmen?

Jeg har selv kodet det ved at hente skærmstørrelsen med: Toolkit.getDefaultToolkit().getScreenSize() og så beregne JFrame'ens placering ud fra det, men der må være en metode et eller andet sted der gør arbejdet?

Prom
Avatar billede a-torsten Nybegynder
15. april 2002 - 00:09 #1
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setSize(new java.awt.Dimension(600, 400));
        setLocation((screenSize.width-600)/2,(screenSize.height-400)/2);
Avatar billede prom Nybegynder
15. april 2002 - 00:22 #2
Det er desværre akkurat på den måde jeg selv har løst problemet. Der må være en metode i JFrame eller højere oppe i hierakiet der hedder noget som ligner følgende:
frame.center();    eller
frame.setPosition(JFrame.SCREEN_CENTER);
Avatar billede bearhugx Nybegynder
15. april 2002 - 01:15 #3
Nope .... De metoder/kald findes ikke...
Du bliver simpelthen nød til at bruge ovenstående kode (som jeg hellerikke synes er for meget -- Det er jo reelt en linie der skal til...

Evt. lave den som en metode

private void center()
{ java.awt.Dimension screenSize =
    java.awt.Toolkit.getDefaultToolkit().getScreenSize();
  this.setLocation( (screenSize.width-this.getWidth())/2,
    (screenSize.height-this.getHeight())/2 );
}

Så virker den - lige meget, hvilken størrelse framen har...

/Søren
Avatar billede bearhugx Nybegynder
15. april 2002 - 01:15 #4
ovenstående som svar...
Avatar billede prom Nybegynder
15. april 2002 - 13:54 #5
Ikke fordi svaret ikke er godt nok, men det var akkurat på den måde jeg selv løste problemet..... Det jeg ledte efter var en metode....

Prom.
Avatar billede bearhugx Nybegynder
15. april 2002 - 14:37 #6
Og... jeg fortæller dig at der ikke findes nogle metoder, som udfører dette... Derfor svarer jeg også
Avatar billede bearhugx Nybegynder
15. april 2002 - 14:40 #7
[hov - lidt for hurtig på Enter:-)]

(Derfor svarer jeg også)... på dit spørgsmål <<...men der må være en metode et eller andet sted der gør arbejdet?...>>

/Søren
Avatar billede prom Nybegynder
15. april 2002 - 19:26 #8
Du kan da ikke forvente at få point bare ved at skrive at "Nope .... De metoder/kald findes ikke..." Du har vist selv afvist svar der var mere kød på end det svar du har givet mig....

Prom
Avatar billede bearhugx Nybegynder
15. april 2002 - 20:04 #9
Så må du jo specificere dit spørgsmål noget bedre ...
Du har reelt stillet to spørgsmål :
1) Noget kode (hvilken som helst løsning) som kan centrer din Frame
2) Om der ikke var en metode med fra starten, som kunne gøre det...

Svar på del-spørgsmål 1 :

private void center()
{ java.awt.Dimension screenSize =
    java.awt.Toolkit.getDefaultToolkit().getScreenSize();
  this.setLocation( (screenSize.width-this.getWidth())/2,
    (screenSize.height-this.getHeight())/2 );
}

Svar på del-spørgsmål 2 :
Nej - de metoder, du efterlyser findes ikke.
Der er ikke nogle metoder, hverken i AWT eller Swing-bibliotekerne, som centerer en side. Derfor bliver du nød til selv at kode den funktionalitet. Dette kan (som vist i løsning til del 1) gøres på 2 linier. (Det kunne måske være en grund til at der ikke er en særskilt metode for centrering)...

Et "nej" er svaret til dit 2. spørgsmål - om det så er 3 utaknemmelige bogstaver, er jeg ligeglad med, men det er hvad du har spurgt om - og det er det svar som bliver dig givet.

/Søren


PS: Hvilke svar tænker du på i sætningen <<Du har vist selv afvist svar der var mere kød på end det svar du har givet mig....>> ... Jeg vil da være villig til at give en begrundelse for, hvorfor svaret blev afvist, hvis du ønsker det :-)
Avatar billede prom Nybegynder
15. april 2002 - 22:10 #10
Du har da sikkert ret i at jeg ikke har specificeret mit spørgsmål korrekt, og du har da et stækt argument når du siger at du har svaret på mit spørgsmål.

Jeg mener dog at jeg ret præcist spurte efter en metode til centrering af en JFrame. Jeg mener også at jeg skrev hvordan jeg selv havde løst problemet:
<<Jeg har selv kodet det ved at hente skærmstørrelsen med: Toolkit.getDefaultToolkit().getScreenSize() og så beregne JFrame'ens placering ud fra det>>

Dvs at du:
1) Ikke har leveret noget kode som jeg ikke kendte til.
2) Ikke har leveret en metode til centrering. Ved at kigge lidt i java-dokumentationen viste jeg jo at der ikke er en oplagt metode til centrering af en JFrame.

Konklusionen er da, at jeg nu ved jeg at der ikke findes en metode til centrering af en JFrame, men det vinder du altså ikke point ved at fortælle.

Svar på dit PS: den 22/12-2001 stilte du spørsmålet: <<At komme igang med J2EE...>>
hgsdc, eydun og thomaz giver dig en hel række "rigtige" svar på dit spørgsmål, men bliver alle afvist! Du har dog accepteret dit eget svar.... Hmmmm....

Men til slut vil jeg da sige tak for dit svar om maximering af Jframe (der fik du da dine point).
Avatar billede bearhugx Nybegynder
16. april 2002 - 00:29 #11
Ordsproget "Be careful, what you wish for - You might just get it..." kommer virkelig til sin ret her.... :-)

Det er måske et fortolkningsspørgsmål, men du afviser et svar pågrund af at du mener at jeg ikke "leverer".

Jeg, på den anden side, mener at have "leveret" - Omend jeg ikke har leveret, hvad du havde i tankerne, har jeg dog leveret et svar til, hvad du spurgte om - nemlig svaret om der fandtes en metode <<...højere oppe i hierakiet...>>, som kunne løse din centreringsproblematik. Dette svar er ikke en metode - men en afkræftning af at der findes en metode som centrerer.

Moralen er, at man i forbindelse med oprettelse af spørgsmål, bør gøre sig klart, hvad det egenligt er man vil spørge om!

En opmuntrende tanke er dog, at man bliver bedre og bedre til dette, jo mere man bruger eksperten :-)

/Søren

Ang. min pointgivningspolitik >>
Problemet med svarene fra både eydun og thomaz var, at de lige præcis omhandlede Servlets og JSP - De områder, som jeg allerede kendte til og som jeg ville ekspandere fra...

Jeg vil dog give dig ret ang. hgsdc's svar. Det burde jeg have anerkendt - og delt points med ham... ;-)

Som du kan se - så var spørgsmålet åbent i lang tid, uden nogen aktivitet - At jeg selv har svaret og accepteret er sket i forbindelse med en oprydningsprocess, hvor jeg har ville lukke mine åbne spørgsmål. Derfor er pointsne sendt tilbage til mig...
Avatar billede prom Nybegynder
16. april 2002 - 00:44 #12
Du har nok ret i at jeg må formulere mine spørgsmål bedre, det vil jeg gøre næste gang.

Angående din pointgivningspolitik kan jeg jo bruge den samme politik her. Dit forslag <<java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();>> kendte jeg allerede til...

Prom.
Avatar billede prom Nybegynder
29. april 2002 - 14:42 #13
Nå det var vist det...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester