จากโค้ดต่อไปนี้ถ้าลองปรับเปลี่ยนขนาดของ Font ดูจะเห็นว่าขนาดของ JTextArea ยืดหดตามไปด้วยวิธีแก้ให้ใช้คำสั่ง setLineWrap(true); ให้กับ JTextArea ด้วย
[src]
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Problem extends JFrame implements ActionListener
{
String choice_size[] ={"10","11","12","13","14"};
Dimension txtareaSize;
JLabel showSize;
JTextArea textarea;
JComboBox size;
Problem()
{
super("test");
Container c = getContentPane();
c.setLayout(new FlowLayout());
textarea = new JTextArea(30,30);
textarea.setText("==Client==n");
textarea.setEditable(false);
size=new JComboBox(choice_size);
txtareaSize=textarea.getPreferredSize();
showSize=new JLabel("h:"+txtareaSize.height+"w:"+txtareaSize.width );
//textarea.addActionListener(this);
size.addActionListener(this);
c.add(showSize);
c.add(size);
c.add(textarea);
setSize(300,300);
show();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==size)
{
String font = "Comic Sans MS";//(String)combo_font.getSelectedItem();
int style = 0;//combo_style.getSelectedIndex();
int fsize= Integer.parseInt((String)size.getSelectedItem());
Font myFont = new Font(font,style,fsize);
textarea.setFont(myFont);
showSize.setText("h:"+txtareaSize.height+"w:"+txtareaSize.width );
}
}
public static void main(String[] args)
{
new Problem();
}
}
[/src]