import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class chat { 
public static void main(String[] args) { 
new Jchat(); 


class Jchat extends JFrame 

JTextArea J1; 
JList J2; 
JTextArea J3; 
JFrame jf1=new JFrame(); 
JButton B1; 
JButton B2; 
JButton B3; 
Dialog dia=new Dialog(jf1); 
GridBagConstraints c; 
GridBagLayout gba=new GridBagLayout(); 
int gridx,gridy,gridwidth,gridheight,anchor,fill,ipadx,ipady; 
double weightx,weighty; 
Insets inset; 
public Jchat() 

Container f = jf1.getContentPane(); 
jf1.setLayout(gba); 
JPanel j1=new JPanel(); 
JPanel j2=new JPanel(); 
JPanel j3=new JPanel(); 
JPanel j4=new JPanel(); 
JPanel j5=new JPanel(); 
J1=new JTextArea(); 
J1.setLineWrap(true); 
J1.setEditable(false); 
J2=new JList(); 
J3=new JTextArea(); 
J3.setLineWrap(true); 
B3=new JButton("确定"); 
dia.add(B3); 
B1=new JButton("sent"); 
B2=new JButton("out"); 
B1.addActionListener(new action1()); 
B2.addActionListener(new WL()); 
B3.addActionListener(new action2()); 
JScrollPane jscrollPane1 = new JScrollPane(); 
jscrollPane1.getViewport().add(J1,null); 
JScrollPane jscrollPane2 = new JScrollPane(); 
jscrollPane2.getViewport().add(J3,null); 
j1.setLayout(new BorderLayout()); 
j1.add(jscrollPane1); 
j2.setLayout(new BorderLayout()); 
j2.add(jscrollPane2); 
j3.add(B1); 
j3.add(B2); 
j4.setLayout(gba); 
gridx=0; 
gridy=0; 
gridheight=1; 
gridwidth=1; 
weightx=1.0; 
weighty=5; 
anchor=GridBagConstraints.CENTER; 
fill=GridBagConstraints.BOTH; 
inset=new Insets(5,5,5,5); 
ipadx=0; 
ipady=0; 
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,inset,ipadx,ipady); 
gba.setConstraints(j1,c); 
j4.add(j1); 
gridx=0; 
gridy=1; 
gridheight=1; 
gridwidth=1; 
weightx=1.0; 
weighty=1; 
anchor=GridBagConstraints.CENTER; 
fill=GridBagConstraints.BOTH; 
inset=new Insets(5,5,5,5); 
ipadx=0; 
ipady=0; 
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,inset,ipadx,ipady); 
gba.setConstraints(j2,c); 
j4.add(j2); 
/*......*/ 
gridx=0; 
gridy=0; 
gridwidth=1; 
gridheight=1; 
weightx=7.0; 
weighty=1; 
anchor=GridBagConstraints.CENTER; 
fill=GridBagConstraints.BOTH; 
inset=new Insets(0,0,0,0); 
ipadx=0; 
ipady=0; 
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,inset,ipadx,ipady); 
gba.setConstraints(j4, c); 
jf1.add(j4); 
/*...*/ 
dia.setModal(true); 
dia.setSize(100, 100); 
jf1.setTitle("GridBagLayout"); 
jf1.setSize(450,353); 
jf1.setVisible(true); 

在J3中编辑文字时 字数多了会出现滚动条 在不放大JFrame的情况下 两个JTextArea的比例是适中的 但当JFrame 放大后比例就变了 
哪位高手帮忙解决下 如何才能在放大的时候比例也不变

解决方案 »

  1.   

    J3=new JTextArea(x,x);
    x为你需要的数值,定义一下大小。 
      

  2.   

    JtextArea可以通过设置行数和列数来改变大小的
    看下jdk....
    JTextArea jta=new JTextArea();
    jta.setRows(..)
    jta.setColums(..)
      

  3.   

    可以用网格布局的操作java.awt.GridBagConstraints constraintsChooserPanel = new java.awt.GridBagConstraints();
    constraintsChooserPanel.gridx = 0;
    constraintsChooserPanel.gridy = 0;
    constraintsChooserPanel.fill = java.awt.GridBagConstraints.BOTH;
    constraintsChooserPanel.weightx = 1.0;
    constraintsChooserPanel.weighty = 1.0;
    constraintsChooserPanel.insets = new java.awt.Insets(0, 4, 4, 4);
    chooserBorderPanel.add(getChooserPanel(), constraintsChooserPanel);调整下属性参数即可
      

  4.   

    JTextArea可以通过改变宽度和高度来改变大小,在实例化它的时候指定大小即可