【发布时间】:2014-06-12 06:01:50
【问题描述】:
我有一个问题。在向我的 JFrame 添加几个对象后,当我执行应用程序时,我需要调整表单的尺寸以查看所有内容。我做了一些研究,我明白我需要在某处插入这行代码(但我不知道在哪里!!)
revalidate();
或
repaint();
我尝试在任何地方添加这些,但出现语法错误....帮助?
package test_area;
import javax.swing.BoxLayout;
import javax.swing.*;
import java.awt.*;
public class Test_area {
// private JFrame f;
// private JPanel p;
//private JButton b1;
private JLabel lab;
final static boolean shouldFill = true;
final static boolean shouldWeightX = true;
public Test_area()
{
gui();
}
public void gui()
{
JFrame f = new JFrame("Ma JFrame");
f.setVisible(true);
f.setSize(600,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel(new GridBagLayout());
p.setBackground(Color.CYAN);
//p.setSize(450,250);
JButton b1 = new JButton("Login");
JButton b2 = new JButton("Exit_ ");
JLabel l1 = new JLabel("Username");
JLabel l2 = new JLabel("Password");
JLabel validate = new JLabel("Not Validated Yet");
TextField textField = new TextField(20);
JPasswordField pwField = new JPasswordField(15);
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(5,5,5,5);
c.gridx=0;
c.gridy=1;
p.add(l1,c);
c.gridx = 1;
c.gridy = 1;
p.add(textField,c);
c.gridx = 0;
c.gridy = 2;
p.add(l2,c);
c.gridx= 1;
c.gridy=2;
p.add(pwField,c);
c.gridx=2;
c.gridy=1;
p.add(b1,c);
c.gridx=2;
c.gridy=2;
p.add(b2,c);
c.gridx=3;
c.gridy=1;
p.add(validate,c);
f.add(p,BorderLayout.NORTH);
// JButton button;
// JPanel p = new JPanel();
// p.setLayout(new GridBagLayout());
// GridBagConstraints c = new GridBagConstraints();
//
// if(shouldFill)
// {
// c.fill = GridBagConstraints.HORIZONTAL;
// }
//
// button = new JButton("Button1");
//
// if(shouldWeightX)
// {
// c.weightx = 0.5;
// }
//
}
public static void main(String[] args) {
new Test_area();
}
}
【问题讨论】: