想用GridBagLayout实现上面布局,代码如下importjava.awt.*;importjavax.swing.*;publicclassTest1{privatestaticfinallongserialVersion=1L;privateJFramejf;privateJLabeltagsjl;pr...
想用GridBagLayout实现上面布局,代码如下
import java.awt.*;
import javax.swing.*;
public class Test1 {
private static final long serialVersion=1L;
private JFrame jf;
private JLabel tagsjl;
private JTextField jt;
private JLabel tagmodejl;
private JComboBox jcb;
private JButton searchjb;
private JTable jta;
private JLabel prejl;
Test1(){
jf=new JFrame("GridBagWindow");
Container container=jf.getContentPane();
GridBagLayout gbl=new GridBagLayout();
jf.setLayout(gbl);
GridBagConstraints c=new GridBagConstraints();
c.fill =GridBagConstraints.HORIZONTAL;
tagsjl=new JLabel("Tags");
c.gridx=0;
c.gridy=0;
//c.gridwidth=1;
gbl.setConstraints(tagsjl,c);
jf.add(tagsjl);
tagmodejl=new JLabel("Tag Mode");
c.gridx=0;
c.gridy=1;
c.gridwidth=1;
gbl.setConstraints(tagmodejl,c);
jf.add(tagmodejl);
jt=new JTextField();
jt.setText("plinthaaa");
c.gridx=1;
c.gridy=0;
c.gridwidth=2;
gbl.setConstraints(jt,c);
jf.add(jt);
String[] box={"all","anything"};
jcb=new JComboBox(box);
c.gridx=1;
c.gridy=1;
c.gridwidth=1;
gbl.setConstraints(jcb,c);
jf.add(jcb);
searchjb=new JButton("Search");
c.gridx=1;
c.gridy=2;
c.gridwidth=1;
gbl.setConstraints(searchjb,c);
jf.add(searchjb);
jta=new JTable(5,3);
c.gridx=0;
c.gridy=3;
c.gridwidth=3;
gbl.setConstraints(jta,c);
jf.add(jta);
prejl=new JLabel("Preview goes here");
c.gridx=0;
c.gridy=4;
c.gridwidth=1;
gbl.setConstraints(prejl,c);
jf.add(prejl);
jf.pack();
jf.setVisible(true);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
new Test1();
}
}
实际运行结果:
感觉前面3行宽度不对,这是为什么?
展开