要求:使用者名和密碼正确後進入首頁,錯誤提示錯誤,并且3次錯誤後将退出視窗。
我初學JavaGUI,現在我把我的思路寫一下,
1、主視窗,視窗上有文本輸入框和登陸按鈕,如圖
2、在登陸按鈕和取消按鈕上設定時間監聽機制,
取消:退出程式;
登陸:擷取使用者名和密碼,然後與自己儲存的使用者名密碼作比較,現在兩種情況,正确與錯誤,
正确:關閉登陸視窗,并彈出新視窗,新視窗即為首頁;
錯誤:彈出新視窗,提示錯誤,并且累加,超過三次則推出程式,
現在粘上代碼,
import java.awt.Container;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Test10_3 {
public static void main(String [] args){
Denglu de = new Denglu();
}
}
class Denglu{
private JFrame jf = new JFrame("登陸視窗");
private JButton jb1 = new JButton("使用者名");
private JButton jb2 = new JButton("密碼");
private JButton jbLogin = new JButton("登陸");
private JButton jbquxiao = new JButton("取消");
private JTextField jtName = new JTextField();
private JTextField jtPwd = new JTextField();
private final String mima = "sss111";//此為預設的密碼
private int count = 0;
private JFrame jfZhu = new JFrame();
ImageIcon image = new ImageIcon("C:\\Users\\sss\\Desktop\\index.jpg");//這為我的圖檔路徑
private JLabel jlZhu = new JLabel(image);
private JFrame jfCuo = new JFrame();
private JLabel jlCuo = new JLabel("你輸入的使用者名密碼不比對!");
public Denglu(){
Container cp = jf.getContentPane();
cp.setLayout(null);
jtName.setBounds(150,50,100,20);
cp.add(jtName);
jb1.setBounds(10,50,100,20);
cp.add(jb1);
jtPwd.setBounds(150,100,100,20);
cp.add(jtPwd);
jb2.setBounds(10,100,100,20);
cp.add(jb2);
jbLogin.setBounds(20, 150, 100, 20);
jbquxiao.setBounds(150, 150, 100, 20);
cp.add(jbLogin);
cp.add(jbquxiao);
jbquxiao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
jbLogin.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String name = jtName.getText();
String pwd = jtPwd.getText();
String aa = name+pwd;
if(aa.equals(mima)){//Java中判斷兩個字元串相等用equals()函數。
jf.dispose();//關閉登陸面闆
Container cp2 = jfZhu.getContentPane();
cp2.setLayout(null);
jlZhu.setBounds(0, 0, 400, 300);
cp2.add(jlZhu);
jfZhu.setSize(400,300);
jfZhu.setVisible(true);
}
else{
if(0<=count&&count<3){
Container cp3 = jfCuo.getContentPane();
cp3.setLayout(null);
jlCuo.setBounds(0, 0, 400, 300);
cp3.add(jlCuo);
jfCuo.setSize(400,300);
jfCuo.setVisible(true);
count++;
}
else{
if(count>=3)
System.exit(0);
}
}
}
});
jf.setSize(400, 300);
jf.setVisible(true);
}
}