我现在在代码中通过指定了component的size,但发现在显示时依然还是原样,请问如何控制?
代码如下:
package qy_classes;import java.awt.Toolkit;
import java.awt.Image;
import java.awt.Dimension;import javax.swing.JFrame;
import java.awt.Container;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
public class PasswordTest{
public static void main(String[] args){
LoginFrame loginWindow = new LoginFrame();
loginWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
loginWindow.show();
}
}class LoginFrame extends JFrame {
public LoginFrame(){
//定义框架的尺寸大小及标题等基本信息
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
Image img = kit.getImage("chick.jpg");
setIconImage(img);
setTitle("系统登录窗口");
setSize(screenWidth/2,screenHeight/2);

//定义框架的内容
LoginPanel loginPanel = new LoginPanel();

//定义一个容器
Container contentPane = getContentPane();
contentPane.add(loginPanel,BorderLayout.CENTER);
}
}
class LoginPanel extends JPanel {
public LoginPanel() {
setLayout(new GridLayout(2,1));
setSize(8,30);

JPanel userinfoPanel = new JPanel(new GridLayout(2,2));
userinfoPanel.setSize(6,30);
JLabel usernameLab = new JLabel("用户名:");
JLabel passwordLab = new JLabel("密  码:");
JTextField usernameTxt = new JTextField(20);
JTextField passwordTxt = new JTextField(20);

userinfoPanel.add(usernameLab);
userinfoPanel.add(usernameTxt);
userinfoPanel.add(passwordLab);
userinfoPanel.add(passwordTxt);

JPanel buttonPanel = new JPanel();
buttonPanel.setSize(2,30);
// buttonPanel.setLayout(FlowLayout.RIGHT);
JButton loginBtn = new JButton("登录");
JButton cancleBtn = new JButton("取消");
JButton exitBtn = new JButton("退出");
buttonPanel.add(loginBtn);
buttonPanel.add(cancleBtn);
buttonPanel.add(exitBtn);

add(userinfoPanel);
add(buttonPanel);
}
}