把 setVisible(true) 放到 空构造方法的最后一句。璧如Login()、mainFrame()、init()等等
package gui;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import service.AdminService;
import vo.Admin;
import javax.swing.UIManager;
/**
*
* 作者 1123580927
* 日期 2016-x-x
*
*/
public class Login {
JFrame frame;
Font font;
JLabel userNameLabel;
JTextField userNameField;
JLabel passWordLabel;
JPasswordField passWordField;
JButton loginButton;
JButton resetButton;
public Login() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("登录窗口");
WindowHandler windowHandler = new WindowHandler();
frame.addWindowListener(windowHandler);
frame.setSize(350, 280);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
font = new Font("黑体", Font.ITALIC, 16);
frame.getContentPane().setLayout(null);
userNameLabel = new JLabel();
userNameLabel.setText("用户名 :");
userNameLabel.setFont(UIManager.getFont("Label.font"));
userNameLabel.setBounds(50, 50, 80, 20);
userNameField = new JTextField();
userNameField.setFont(UIManager.getFont("TextField.font"));
userNameField.setBounds(140, 50, 150, 20);
/**
* 2016-08-01
*/
keyEventListenner klEventListenner = new keyEventListenner();
userNameField.addKeyListener(klEventListenner);
passWordLabel = new JLabel();
passWordLabel.setText("密码 :");
passWordLabel.setFont(UIManager.getFont("Label.font"));
passWordLabel.setBounds(50, 90, 80, 20);
passWordField = new JPasswordField();
passWordField.setFont(UIManager.getFont("TextField.font"));
passWordField.setEchoChar('*');
passWordField.setBounds(140, 90, 150, 20);
loginButton = new JButton("登录");
loginButton.setFont(UIManager.getFont("Button.font"));
loginButton.setBounds(50, 130, 100, 20);
resetButton = new JButton("重置");
resetButton.setFont(UIManager.getFont("Button.font"));
resetButton.setBounds(190, 130, 100, 20);
frame.getContentPane().add(userNameLabel);
frame.getContentPane().add(userNameField);
frame.getContentPane().add(passWordLabel);
frame.getContentPane().add(passWordField);
frame.getContentPane().add(loginButton);
frame.getContentPane().add(resetButton);
CustomActionListener customActionListener = new CustomActionListener();
loginButton.addActionListener(customActionListener);
resetButton.addActionListener(customActionListener);
frame.setVisible(true);
}
/**
*
* @author wk 2016-08-01
*
*/
public class WindowHandler extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
int i = JOptionPane.showConfirmDialog(null, "关闭此此窗口");
if (i == 0) {
System.out.println("是的:" + i);
System.exit(0);
} else {
frame.dispose();
new Login();
System.out.println("否:" + i);
}
}
}
/**
* 2016-08-01
*/
class keyEventListenner implements KeyListener {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if (e.getKeyCode() == KeyEvent.VK_ENTER)
System.out.println(userNameField.getText());
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
class CustomActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand() == "登录") {
AdminService service = new AdminService();
Admin ad = new Admin();
ad.setUserName(userNameField.getText());
ad.setPassword(new String(passWordField.getPassword()));
if (service.login(ad)) {
frame.setVisible(false);
JOptionPane.showMessageDialog(null, "登录成功", "登录成功",
JOptionPane.INFORMATION_MESSAGE);
new MainManage();
} else {
JOptionPane.showMessageDialog(null, "用户名或密码错误", "登录错误",
JOptionPane.WARNING_MESSAGE);
}
} else if (e.getActionCommand() == "重置") {
System.out.println("重置");
}
}
}
public static void main(String[] args) {
new Login();
}
}