溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JAVA JDK不同版本對JFrame的支持

發(fā)布時間:2020-08-18 05:06:41 來源:ITPUB博客 閱讀:240 作者:清風(fēng)艾艾 欄目:編程語言
    最近,一新手學(xué)習(xí)JAVA,其摸索到了JFrame,在使用中遇到了一個問題,就是JDK1.8對JFrame的set方法不完全支持。
環(huán)境信息:
操作系統(tǒng):DELL 7470/windows 7 X86_64
開發(fā)平臺:MyEclipse 8.5
源代碼:
package com.cn;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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.JPasswordField;
import javax.swing.JTextField;
/**
 * @date 2018-1-23
 * @author zhul
 * @version 1.0
 * @功能:實(shí)現(xiàn)一個CS模式的用戶登錄窗體,有用戶登錄名和密碼,有登錄和重置2個按鈕,實(shí)現(xiàn)簡單的登錄驗(yàn)證
 */

class LoginCheck{//用戶登錄校驗(yàn)類
private String name;//聲明用戶登錄名變量
private String password;//聲明用戶登錄密碼
public LoginCheck(String name,String password){//LoginCheck全參構(gòu)造方法
this.name=name;
this.password=password;
}

public boolean validate(){//登錄校驗(yàn)方法
if("zhul".equals(name)&&"P@ssw0rd".equals(password)){//用寫死的登錄名和密碼執(zhí)行登錄校驗(yàn)
return true;
}else{
return false;
}
}
}

class ActionHandle{
private JFrame frame = new JFrame("Welcome To TEST");//聲明一個窗體
private JButton submit = new JButton("登錄");//聲明一個登錄按鈕
private JButton reset = new JButton("重置");//聲明一個重置按鈕
private JLabel nameLab = new JLabel("用戶名:");//聲明一個用戶名標(biāo)簽
private JLabel passLab = new JLabel("密     碼:");//聲明一個密碼標(biāo)簽
private JLabel infoLab = new JLabel("用戶登錄系統(tǒng)");//聲明一個用戶登錄信息提示
private JTextField nameText = new JTextField();//聲明一個用戶名文本輸入框
private JPasswordField passText = new JPasswordField(); //聲明一個密碼輸入框
public ActionHandle(){
Font fnt = new Font("Serief",Font.BOLD,12);//定義窗體字體格式
infoLab.setFont(fnt);//用戶登錄信息提示應(yīng)用定義的字體格式
submit.addActionListener(new ActionListener(){//在窗體主控制方法中添加登錄按鈕監(jiān)聽方法
public void actionPerformed(ActionEvent arg0){//實(shí)現(xiàn)登錄按鈕監(jiān)聽必須實(shí)現(xiàn)的方法
if(arg0.getSource() == submit){//登錄按鈕點(diǎn)擊執(zhí)行登錄校驗(yàn)
String tname = nameText.getText();
String tpass = new String(passText.getPassword());
LoginCheck log = new LoginCheck(tname,tpass);
if(log.validate()){
infoLab.setText("登錄成功!");
}else{
infoLab.setText("登錄失敗,請重試!");
}
}

if(arg0.getSource() == reset) {//重置按鈕點(diǎn)擊執(zhí)行用戶名和密碼文本框清空
System.out.println("submit-reset is called!");
nameText.setText("");
passText.setText("");
infoLab.setText("user login system!");
}
}
});

reset.addActionListener(new ActionListener(){//在窗體主控制方法中添加重置按鈕監(jiān)聽方法
public void actionPerformed(ActionEvent arg0){//實(shí)現(xiàn)重置按鈕監(jiān)聽必須實(shí)現(xiàn)的方法
if(arg0.getSource() == reset) {//重置按鈕點(diǎn)擊執(zhí)行用戶名和密碼文本框清空
System.out.println("reset is called!");
nameText.setText("");
passText.setText("");
infoLab.setText("user login system!");
}
}
});

frame.addWindowListener(new WindowAdapter(){//在窗體中添加監(jiān)聽
public void windowClosing(WindowEvent arg0){//窗體退出
System.exit(1);
}
});

frame.setLayout(null);//使用絕對定位
nameLab.setBounds(5,5,60,20);//定義用戶名標(biāo)簽的位置及大小
passLab.setBounds(5,30,60,20);
infoLab.setBounds(5,65,220,30);
nameText.setBounds(65,5,100,20);
passText.setBounds(65,30,100,20);
submit.setBounds(165,5,60,20);
reset.setBounds(165,30,60,20);
frame.add(nameLab);//在窗體中添加標(biāo)簽
frame.add(passLab);
frame.add(infoLab);
frame.add(nameText);
frame.add(passText);
frame.add(submit);
frame.add(reset);
frame.setSize(280,130);//設(shè)置窗體寬和高
frame.setVisible(true);//設(shè)置窗體顯示屬性為顯示
}
}

public class MyActionEventDemo03 {//窗體測試主方法
public static void main(String[] args){
new ActionHandle();
}
}

1、使用JDK1.8時,代碼提示編譯錯誤
JAVA JDK不同版本對JFrame的支持JAVA JDK不同版本對JFrame的支持JAVA JDK不同版本對JFrame的支持

2、使用JDK 1.7.0_67/JDK 1.6.0_13,代碼能正常工作
工程使用JDK 1.7.0_67/JDK 1.6.0_13,類 MyActionEventDemo03沒有編譯告警
JAVA JDK不同版本對JFrame的支持
JAVA JDK不同版本對JFrame的支持
 工程使用JDK 1.7.0_67/JDK 1.6.0_13,類 MyActionEventDemo03能夠正常執(zhí)行
JAVA JDK不同版本對JFrame的支持
--測試登錄按鈕
JAVA JDK不同版本對JFrame的支持
--測試重置按鈕
JAVA JDK不同版本對JFrame的支持
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI