Re: Wrap text dont ajust
To: comp.lang.java.gui
Also, The line lengths were very long (just because
the HTML was long, did not mean the code lines
had to be!) and they wrapped and needed to be
fixed before the code would compile.
i found this topic:
http://groups.google.com/group/comp.lang.java.gui/browse_thread/thread/db311ad88332fbb9/f27e21f638efd5dc?lnk=gst&q=Preferred+Size&rnum=2#f27e21f638efd5dc
where they discuss a similar problem, but i dont understand this:
"A general approach is to have the getPreferredSize() method of a
component set the width of the component to the width that you want,
invoke validate on the component, determine the maximum height value
used by the component when it laidout itself in the validate method.
How the last step is done depends on the component. "
Note though, that needing to set the preferred
size of a component is, in itself, sometimes a
hint that something is wrong with the GUI.
I try to do with a Scrollable component (i implement a MyScrollPanel,
with this i dont need to use setPreferredSize because the function
getScrollableTracksViewportWidth returns true, but didn't solve the
problem :( )
&.. don't forget to call pack() or validate(), as
behaviour can be quite random otherwise.
I'm calling validate now, although i dont know yet to work with this
well. I try pack but didn't respect the size i set to the frame.
I rewrite the code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.*;
public class SimpleGuiTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JLabel long_label = new JLabel("<html>A very long label.</html>");
JLabel tall_label = new JLabel("<html>Begin br's
<br><br>Middle<br><br>End</html>");
panel.add(long_label);
panel.add(tall_label);
JScrollPane scrollPag = new JScrollPane(panel);
scrollPag.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
/*Comment or descomment the following line*/
panel.setPreferredSize(new
Dimension(scrollPag.getViewport().getWidth(),panel.getPreferredSize().height));
// create and configure the layout
Container conteudo = frame.getContentPane();
conteudo.setLayout(new BorderLayout());
// insert the scrollpane
conteudo.add(scrollPag,BorderLayout.CENTER);
frame.setSize(100, 100);
frame.validate();
frame.setVisible(true);
}
}
---
* 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