导航:首页 > 编程语言 > java7实例

java7实例

发布时间:2023-12-26 10:20:49

Ⅰ 如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。

java中一般使用swing 和awt技术来实现图形界面,Swing组件较多,功能比较强大,所以这里使用Swing组件来实现。窗口使用(JFrame),按钮使用(JButton)。


两个窗口关联并且跳转,最常见的场景就是登陆了。

登陆窗口,输入用户名和密码,如果成功就跳转到主窗口


但是隐藏窗口,会在后面浪费系统资源。

如果不再使用该窗口,应该彻底销毁(dispose();),释放系统资源


LoginFrame 类

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

//LoginFrame登陆窗口功能实现用户登陆,如果成功就跳转
//LoginFrame继承于窗口类,并实现ActionListener接口
{
//申明需要的组件
JButtonjb1,jb2;//按钮
JTextFieldjtf1;//文本框
JPasswordFieldjpf1;//密码框

publicLoginFrame(){
//窗口属性的设置
setTitle("登陆窗");//窗口标题
setSize(300,180);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口则退出虚拟机
setLayout(newFlowLayout());//设置布局流式布局

JPaneljp=newJPanel(newGridLayout(4,1));//设置面板为表格布局4行1列
//第一行
JPaneljp1=newJPanel();
JLabeljl1=newJLabel("账号");
jtf1=newJTextField(12);
jp1.add(jl1);
jp1.add(jtf1);
jp.add(jp1);
//第二行
JPaneljp2=newJPanel();
JLabeljl2=newJLabel("密码");
jpf1=newJPasswordField(12);
jp2.add(jl2);
jp2.add(jpf1);
jp.add(jp2);
//第三行
JPaneljp3=newJPanel();
jb1=newJButton("登陆");
jb1.addActionListener(this);//添加动作响应器
jb2=newJButton("重置");
jb2.addActionListener(this);//添加动作响应器
jp3.add(jb1);
jp3.add(jb2);
jp.add(jp3);
//第四行
JPaneljp4=newJPanel();
JLabeljl3=newJLabel("提示:账号admin密码123");
jl3.setForeground(Color.DARK_GRAY);
jp4.add(jl3);
jp.add(jp4);

add(jp);

}

//动作响应
publicvoidactionPerformed(ActionEvente){
Stringcmd=e.getActionCommand();//根据动作命令,来进行分别处理
if(cmd.equals("登陆")){
Stringid=jtf1.getText();//取得用户名
Stringkey=newString(jpf1.getPassword());//取得密码
if(id.equals("admin")&&key.equals("123")){//判断是否登录成功
//如果登录成功
setVisible(false);//本窗口隐藏,
newMainFrame(id).setVisible(true);//新窗口显示
dispose();//本窗口销毁,释放内存资源
}else{
//如果登录失败弹出提示
JOptionPane.showMessageDialog(this,"用户名或者密码错误.","通知",JOptionPane.ERROR_MESSAGE);
clearText();//清空文本框密码框的输入
}
}elseif(cmd.equals("重置")){
clearText();
}

}

privatevoidclearText(){//清空文本框,密码框的输入
jtf1.setText("");
jpf1.setText("");
}

//main方法,程序的入口
publicstaticvoidmain(String[]args){
newLoginFrame().setVisible(true);//创建登录窗口,并可见
}

}

MainFrame类

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

{

publicMainFrame(Stringname){
setTitle("主窗口");//标题
setSize(300,260);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPaneljp=newJPanel();
JLabeljl1=newJLabel("欢迎");
JLabeljl2=newJLabel(name);
jl2.setForeground(Color.BLUE);//设置文本颜色
JLabeljl3=newJLabel("使用系统.");
jp.add(jl1);
jp.add(jl2);
jp.add(jl3);
add(jp,BorderLayout.NORTH);
JTextAreajta=newJTextArea();
jta.setLineWrap(true);
jta.append("消息提示");
jta.append("消息!通知~!");
JScrollPanejsp=newJScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
add(jsp);
JPaneljp2=newJPanel();
JButtonjb=newJButton("退出");
jb.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);//退出
}
});
jp2.add(jb);
add(jp2,BorderLayout.SOUTH);
}

}


Ⅱ java7,8的几个特性(自己的理解,大神们多指

JDK 1.7部分新特性
1)switch支持String类型 本质上是对int类型的匹配,
实现原理为:通过case后面的str对象调用hashcode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case.当匹配时,首先调用这个字符串的hashcode()方法,获得一个hash值,用这个hash值与case匹配,若没有则不存在,若有则接着调用equals()方法进行匹配。String变量不能为null ,case后的字符串也不能为null ,否则会出现NullPointerException.
2)可以在catch中捕获多个异常
3)对数值字面量进行了改进

try(InputStreamfis=newFileInputStrean("input.txt");){while(fis.read()!=1){
System.out.println(fis.read());
}
}catch(Exceptione){
e.printStackTrace();
}

DK 1.8 部分新特性
1)增加了Lambda表达式的支持 Lambda表达式是一个匿名函数 允许把函数作为一个方法的参数
示例

Arrays.AsList(2,8,1).forEach(i->System.out.println(i));//1
Arrays.AsList(2,8,1).forEach((Integeri)->System.out.println(i));//2

在java8以前 对于列表的排序 如果有自定义的类 则需要制定自定义的排序方法

Person[]people={newPerson("Iack",22),newPerson("Tony",35)};
Arrays.sort(people,newComparator<Person>(){//自定义排序方法new一个Conparator重写compare方法
@Overridepublicintcompare(Persona,Personb){returna.getAge()-b.getAge();
}
});for(Personp:people){
System.out.println(p);
}

Lambda表达式

Arrays.sort(people,(Persona,Personb)->a.getAge()-b.getAge());
Arrays.sort(people,(a,b)->a.getAge()-b.getAge());

Lambda表达式是通过函数式接口实现的 (只有一个方法的普通接口)。函数式接口可以隐式的转换为Lambda表达式,为了与普通的接口区分开,增加了注解@FunctionalInterface

@FunctionalInterfaceinterface
fun{
voidf();
}

2)接口增加了方法的默认实现和静态方法 JDK1.8通过使用关键字 default可以给接口中的方法添加默认实现,此外,接口中还可以定义静态方法。

interfaceIn8{
voidf();
defaultvoidg(){
System.out.println("default");
}
staticvoidh(){
System.out.println("static");
}
}

引入接口默认方法实现 是为了实现接口升级 在原有的设计中,如果想要升级接口,例如给接口中添加一个新的方法,会导致所有实现这个接口的类都需要被修改。

3)方法引用 方法引用指的是可以直接使用java类或对象的方法

Arrays.sort(people,Comparator.comparing(Person::getAge));

方法引用共有下面四种方式

更多的特性,请J对比JAVA下7以及8的JDK的相关内容

Ⅲ java7什么意思

Java 7,代号“海豚(Dolphin)”,是Java历史上一次非常重大的版本更新。Java 7 由Sun公司(2009年4月20日被Oracle以74亿美元收购)于2011年7月7日首次推出,并于2011年7月28日正式面向开发人员发布。Java 7 的开发周期分为13个阶段,并于2011年2月18日全部达成。平均每个阶段又更新发布了8个内部小版本,每个版本主要进行功能增强和bug修复

Ⅳ java jre7如何设置环境变量

1. 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)

如下图所示

阅读全文

与java7实例相关的资料

热点内容
如何让安卓手机操控电脑 浏览:187
电脑电销加密电话号码破解 浏览:505
世界史纲pdf 浏览:133
湖北社保年审app叫什么名字 浏览:852
迈达克云服务器 浏览:597
mfc深入浅出从mfc设计到mfc编程 浏览:81
萤石云服务器连接设置 浏览:325
中国名着pdf 浏览:592
华为服务器设备序列号怎么看 浏览:319
跑永辉生活配送用什么app 浏览:149
ug识别符号命令在哪里 浏览:719
pdf文件改文字 浏览:732
查询qq号剑灵服务器地址 浏览:552
国家反诈中心app为什么要刷脸 浏览:303
iphone怎么修改dns服务器地址 浏览:85
bandizip解压位置 浏览:168
服务器的防火墙如何访问 浏览:306
javagoto关键字 浏览:847
广州少儿编程加盟排名榜 浏览:122
51单片机th0 浏览:294