JAVA JDK不同版本对JFrame的支持
2018-01-23 13:45
330 查看
最近,一新手学习JAVA,其摸索到了JFrame,在使用中遇到了一个问题,就是JDK1.8对JFrame的set方法不完全支持。
环境信息:
操作系统:DELL 7470/windows 7 X86_64
开发平台: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
* @功能:实现一个CS模式的用户登录窗体,有用户登录名和密码,有登录和重置2个按钮,实现简单的登录验证
*/
class LoginCheck{//用户登录校验类
private
String name;//声明用户登录名变量
private
String password;//声明用户登录密码
public
LoginCheck(String name,String password){//LoginCheck全参构造方法
this.name=name;
this.password=password;
}
public
boolean validate(){//登录校验方法
if("zhul".equals(name)&&"P@ssw0rd".equals(password)){//用写死的登录名和密码执行登录校验
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("用户名:");//声明一个用户名标签
private
JLabel passLab = new JLabel("密 码:");//声明一个密码标签
private
JLabel infoLab = new JLabel("用户登录系统");//声明一个用户登录信息提示
private
JTextField nameText = new JTextField();//声明一个用户名文本输入框
private
JPasswordField passText = new JPasswordField(); //声明一个密码输入框
public
ActionHandle(){
Font
fnt = new Font("Serief",Font.BOLD,12);//定义窗体字体格式
infoLab.setFont(fnt);//用户登录信息提示应用定义的字体格式
submit.addActionListener(new
ActionListener(){//在窗体主控制方法中添加登录按钮监听方法
public
void actionPerformed(ActionEvent arg0){//实现登录按钮监听必须实现的方法
if(arg0.getSource()
== submit){
//登录按钮点击执行登录校验
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) {//重置按钮点击执行用户名和密码文本框清空
System.out.println("submit-reset
is called!");
nameText.setText("");
passText.setText("");
infoLab.setText("user
login system!");
}
}
});
reset.addActionListener(new
ActionListener(){//在窗体主控制方法中添加重置按钮监听方法
public
void actionPerformed(ActionEvent arg0){//实现重置按钮监听必须实现的方法
if(arg0.getSource()
== reset) {//重置按钮点击执行用户名和密码文本框清空
System.out.println("reset
is called!");
nameText.setText("");
passText.setText("");
infoLab.setText("user
login system!");
}
}
});
frame.addWindowListener(new
WindowAdapter(){//在窗体中添加监听
public
void windowClosing(WindowEvent arg0){//窗体退出
System.exit(1);
}
});
frame.setLayout(null);//使用绝对定位
nameLab.setBounds(5,5,60,20);//定义用户名标签的位置及大小
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);//在窗体中添加标签
frame.add(passLab);
frame.add(infoLab);
frame.add(nameText);
frame.add(passText);
frame.add(submit);
frame.add(reset);
frame.setSize(280,130);//设置窗体宽和高
frame.setVisible(true);
//设置窗体显示属性为显示
}
}
public class MyActionEventDemo03 {//窗体测试主方法
public
static void main(String[] args){
new
ActionHandle();
}
}
1、使用JDK1.8时,代码提示编译错误
2、使用JDK 1.7.0_67/JDK 1.6.0_13,代码能正常工作
工程使用JDK
1.7.0_67/JDK 1.6.0_13,类 MyActionEventDemo03没有编译告警
工程使用JDK
1.7.0_67/JDK 1.6.0_13,类 MyActionEventDemo03能够正常执行
--测试登录按钮
--测试重置按钮
环境信息:
操作系统:DELL 7470/windows 7 X86_64
开发平台: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
* @功能:实现一个CS模式的用户登录窗体,有用户登录名和密码,有登录和重置2个按钮,实现简单的登录验证
*/
class LoginCheck{//用户登录校验类
private
String name;//声明用户登录名变量
private
String password;//声明用户登录密码
public
LoginCheck(String name,String password){//LoginCheck全参构造方法
this.name=name;
this.password=password;
}
public
boolean validate(){//登录校验方法
if("zhul".equals(name)&&"P@ssw0rd".equals(password)){//用写死的登录名和密码执行登录校验
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("用户名:");//声明一个用户名标签
private
JLabel passLab = new JLabel("密 码:");//声明一个密码标签
private
JLabel infoLab = new JLabel("用户登录系统");//声明一个用户登录信息提示
private
JTextField nameText = new JTextField();//声明一个用户名文本输入框
private
JPasswordField passText = new JPasswordField(); //声明一个密码输入框
public
ActionHandle(){
Font
fnt = new Font("Serief",Font.BOLD,12);//定义窗体字体格式
infoLab.setFont(fnt);//用户登录信息提示应用定义的字体格式
submit.addActionListener(new
ActionListener(){//在窗体主控制方法中添加登录按钮监听方法
public
void actionPerformed(ActionEvent arg0){//实现登录按钮监听必须实现的方法
if(arg0.getSource()
== submit){
//登录按钮点击执行登录校验
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) {//重置按钮点击执行用户名和密码文本框清空
System.out.println("submit-reset
is called!");
nameText.setText("");
passText.setText("");
infoLab.setText("user
login system!");
}
}
});
reset.addActionListener(new
ActionListener(){//在窗体主控制方法中添加重置按钮监听方法
public
void actionPerformed(ActionEvent arg0){//实现重置按钮监听必须实现的方法
if(arg0.getSource()
== reset) {//重置按钮点击执行用户名和密码文本框清空
System.out.println("reset
is called!");
nameText.setText("");
passText.setText("");
infoLab.setText("user
login system!");
}
}
});
frame.addWindowListener(new
WindowAdapter(){//在窗体中添加监听
public
void windowClosing(WindowEvent arg0){//窗体退出
System.exit(1);
}
});
frame.setLayout(null);//使用绝对定位
nameLab.setBounds(5,5,60,20);//定义用户名标签的位置及大小
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);//在窗体中添加标签
frame.add(passLab);
frame.add(infoLab);
frame.add(nameText);
frame.add(passText);
frame.add(submit);
frame.add(reset);
frame.setSize(280,130);//设置窗体宽和高
frame.setVisible(true);
//设置窗体显示属性为显示
}
}
public class MyActionEventDemo03 {//窗体测试主方法
public
static void main(String[] args){
new
ActionHandle();
}
}
1、使用JDK1.8时,代码提示编译错误
2、使用JDK 1.7.0_67/JDK 1.6.0_13,代码能正常工作
工程使用JDK
1.7.0_67/JDK 1.6.0_13,类 MyActionEventDemo03没有编译告警
工程使用JDK
1.7.0_67/JDK 1.6.0_13,类 MyActionEventDemo03能够正常执行
--测试登录按钮
--测试重置按钮
相关文章推荐
- 截止JDK1.8版本,java并发框架支持的锁
- internal java compiler error:idea提示jdk版本与工程不同
- Java不同JDK版本下地图图像处理效率对比分析
- 使用 "java -jar"命令启动jar包时报不支持的jdk版本异常
- 查看JDK所支持的JAXB版本和linux下配置jdk环境变量以及查看java版本
- 问题007:JDK版本与JRE版本不同导致java.exe执行类文件错误 java.lang.UnsupportedClassVersionError错误
- 查看JDK所支持的JAXB版本和linux下配置jdk环境变量以及查看java版本
- Java笔记(三)--不同版本jdk以及tomcat共存的问题
- Java笔记(三)--不同版本jdk以及tomcat共存的问题
- Java关于浮点数的舍入法与String.format()在不同jdk版本的区别
- Mac 10.10中Java JDK不同版本安装配
- weblogic各个版本对JDK和Spring的支持度
- 新手安装JDK1.7版本,并配置JAVA环境教程
- 深入理解JDK、JRE(两套)、JVM、以及不同目录下的java.exe
- 好用的Java反编译工具,支持JDK1.4,5.0,6.0,还提供了eclipse插件
- 【Java/Android性能优 6】Android 图片SD卡缓存 使用简单 支持预取 支持多种缓存算法 支持不同网络类型 支持序列化
- 关于安装多个版本jdk之后java -version不正确的问题
- Tomcat 支持的Java 版本和兼容性总结
- duird.io 支持不同版本的 hadoop
- 编译android 出错, java JDK版本版本切换(ubuntu)