kostenloser Webspace werbefrei: lima-city


Java, Swing getSize() funktioniert nicht

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Hallo!

    Eigentlich sinds zwei Probleme, denen ich gegenüber stehe.

    Einerseits stimmen die Abmessungen von JFrames in meinem Programm nicht. Ich hab beispielsweise "896" als Breite angegeben, dargestellt werden aber nur 890 Pixel. Das ist sehr lästig, wenn man Elemente anpassen sollte...

    Das Zweite war, dass ich die Höhe und Breite nicht erfragen konnte. Dies ist aber möglich, sobald das Fenster gerendert ist...
    Leider stimmen die Werte aber immer noch nicht...

    Mein System ist Windows 7 64bit.
    Java: JRE 1.6 Update 30

    Beitrag zuletzt geändert: 15.2.2012 13:10:42 von schrotti12
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Tach schrotti!

    Gehst Du bei der Breite von Fensterbreite oder dem zeichnenden Contentpane aus? Hier wird ja mit zweierlei Maß gemessen wegen den insets für die Border.

    Beim Erfragen von Höhe und Breite ist das logischerweise dasselbe Problem. Man müsste erst einmal wissen, was Du haben möchtest.

    Gruss,
    Pawnee
  4. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Hat mir weiter geholfen. War tatsächich die externe Größe...
    Nach einem pack() bekam ich die Insets richtig und konnte sie zur Größe dazu rechnen...
    Das ganze sieht, in eine Klasse gepackt, dann so aus:
    package testing;
    
    import java.awt.Dimension;
    import java.awt.Insets;
    import javax.swing.JFrame;
    
    public class JFrameGenerator {
       
       private JFrame m_frame;
       private int m_width;
       private int m_height;
       private String m_title;
       
       public JFrameGenerator(){
          m_frame = new JFrame();
       }
       
       public JFrameGenerator(String title, int width, int height){
          m_title = title;
          m_width = width;
          m_height = height;
          m_frame = new JFrame(m_title);
          m_frame.pack();
          Insets i = m_frame.getInsets();
          m_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          m_frame.setPreferredSize(new Dimension(m_width + i.left + i.right, m_height + i.top + i.bottom));
          m_frame.pack();
       }
       
       public JFrame getFrame(){
          return m_frame;
       }
    }


    Erzeugt einen wunderschönen JFrame mit den passenden Innenabmessungen...
  5. Moin,

    sehr schön. Dann schliesse ich einfach mal hier. Falls noch Fragen auftreten und das Thema wieder geöffnet werden soll, bitte per PN anschreiben.

    Gruss,
    Pawnee
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!