java基于简单工厂模式的登录窗口
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class LoginFrame extends JFrame {
public LoginFrame() {
super("xxx");
init();
setDefaultCloseOperation(EXIT_ON_CLOSE);//窗口点击
//“关闭”结束线程
}
private void init() {
setContentPane(createMainPane());
setSize(300, 280);
setResizable(false);
}
}
private JPanel createMainPane() {
JPanel p = new JPanel(new BorderLayout());
p.setBorder(new EmptyBorder(20, 20, 20, 20));
p.add(BorderLayout.NORTH, new JLabel("xxxxxx",
JLabel.CENTER));
p.add(BorderLayout.CENTER, createMiddlePane());
p.add(BorderLayout.SOUTH, createBPane());
return p;
private JPanel createMiddlePane() {
JPanel p = new JPanel(new BorderLayout());
p.add(BorderLayout.NORTH, createIDPWDPane());
return p;
}
private JPanel createIDPWDPane() {
JPanel p = new JPanel(new GridLayout(2, 1, 0, 6));
p.setBorder(new EmptyBorder(20, 20, 20, 20));
p.add(createIDPane());
p.add(createPWDPane());
return p;
}
private JPanel createIDPane() {
JPanel p = new JPanel(new BorderLayout());
p.add(BorderLayout.WEST, new JLabel("UserName:"));
p.setBorder(new EmptyBorder(10, 10, 10, 10));
JTextField idField = new JTextField(20);
p.add(BorderLayout.CENTER, idField);
return p;
}
}
private JPanel createPWDPane() {
JPanel p = new JPanel(new BorderLayout());
p.setBorder(new EmptyBorder(10, 10, 10, 10));
p.add(BorderLayout.WEST, new JLabel("Password:"));
JPasswordField pwdField = new JPasswordField(20);
pwdField.enableInputMethods(true);
p.add(BorderLayout.CENTER, pwdField);
return p;
private JPanel createBPane() {
JPanel p = new JPanel(new FlowLayout());
JButton login = new JButton("Login");
JButton cancel = new JButton("Cancel");
p.add(login);
p.add(cancel);
return p;
}
}
}
public static void main(String[] args) {
LoginFrame frame=new LoginFrame();
frame.setVisible(true);