Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #1141

Re: A JLabel's Size

From "Jason Cavett" <jason.cavett@THRWHITE.remove-dii-this>
Subject Re: A JLabel's Size
Message-ID <1173291080.282224.77460@s48g2000cws.googlegroups.com> (permalink)
Newsgroups comp.lang.java.gui
References <q_BHh.14352$Ov3.1034@newsfe14.lga>
Date 2011-04-27 15:31 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
On Mar 7, 11:45 am, Knute Johnson <nos...@rabbitbrush.frazmtn.com>
wrote:
> Jason Cavett wrote:
> > Something I'm curious about...
>
> > When I create a JLabel and place it into a JPanel/JDialog/some other
> > component, it always appears as the correct size (just large enough to
> > display the text + appropriate boundary around the text).  But, when I
> > attempt to get that JLabel's size, it returns 0 width and 0 height
> > unless I specifically set the size of the JLabel.
>
> > Shouldn't the size have been set correctly upon the addition of the
> > text to the label?  I'm confused on how this is working and why it's
> > working that way.
>
> The component has to be realized first.  It gets realized when the
> container it is in is either packed or its size is set.
>
> import java.awt.*;
> import java.awt.event.*;
> import javax.swing.*;
>
> public class test8 {
>      public static void main(String[] args) {
>          Runnable r = new Runnable() {
>              public void run() {
>                  JFrame f = new JFrame();
>                  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>
>                  JLabel l = new JLabel("Hello World!");
>                  f.add(l,BorderLayout.CENTER);
>                  System.out.println(l.getWidth());
>
>                  f.pack();
>                  System.out.println(l.getWidth());
>                  f.setVisible(true);
>              }
>          };
>          EventQueue.invokeLater(r);
>      }
>
> }
>
> --
>
> Knute Johnson
> email s/nospam/knute/

Okay, that makes sense.

But...why is "preferred size" recognized.  For example, I can do
something like this...

JLabel label = new JLabel("Hello World");
label.setSize(label.getPreferredSize());

I never set the preferred size on my own.  Is something being done
underneath the covers with preferred size?

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

A JLabel's Size "Jason Cavett" <jason.cavett@THRWHITE.remove-dii-this> - 2011-04-27 15:31 +0000
  Re: A JLabel's Size "Knute Johnson" <knute.johnson@THRWHITE.remove-dii-this> - 2011-04-27 15:31 +0000
    Re: A JLabel's Size "Jason Cavett" <jason.cavett@THRWHITE.remove-dii-this> - 2011-04-27 15:31 +0000
      Re: A JLabel's Size "A. Bolmarcich" <a..bolmarcich@THRWHITE.remove-dii-this> - 2011-04-27 15:31 +0000
        Re: A JLabel's Size "Knute Johnson" <knute.johnson@THRWHITE.remove-dii-this> - 2011-04-27 15:31 +0000

csiph-web