Java语言程序设计课程设计实训项目——应用Eclipse Swing可视化开发实现仿QQ程序的界面(第1部分)Java语言程序设计课程设计实训项目——应用Eclipse Swing可视化开发实现仿QQ程序的界面(第1部分)
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
1.1 应用Eclipse Swing可视化开发实现仿QQ程序的界面(第1部分) 1.1.1 利用Eclipse Swing可视化开发实现QQ登录主窗口
本示例的操作结果如下所示:
1、新建一个名称为IMSystem的Java项目
2、在该项目中新建QQ登录主窗口
(1)选择 File>New>Other... ,然后再选择 MyEclips...
Java语言程序
课程设计实训项目——应用Eclipse Swing可视化开发实现仿QQ程序的界面(第1部分)
杨教授工作室 精心创作的优秀程序员 职业提升必读系列
1.1 应用Eclipse Swing可视化开发实现仿QQ程序的界面(第1部分) 1.1.1 利用Eclipse Swing可视化开发实现QQ登录主窗口
本示例的操作结果如下所示:
1、新建一个名称为IMSystem的Java项目
2、在该项目中新建QQ登录主窗口
(1)选择 File>New>Other... ,然后再选择 MyEclipse>Swing>Matisse Form,点击Next按钮。
杨教授工作室,版权所有,盗版必究, 1/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(2)输入包名称为com.px1987.imsystem.frame,类名称为QQLoginMainFrame,并选择Swing JFrame类型
点击“Finish”按钮,将进入可视化设计器视图
杨教授工作室,版权所有,盗版必究, 2/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
同时也会在项目中自动添加系统库swing-layout-1.0.3.jar和AbsoluteLayout.jar()包文件
3、设置QQLoginMainFrame窗口的属性
(1)由于需要监控窗口的关闭行为,因此不应该再直接关闭窗口和退出程序
因此首先选中主窗口,然后在属性面板中设置defaultCloseOperation项目为DO_NOTHING_ON_CLOSE。
(2)将窗口的标题条属性title项目设置为“QQ登录主窗口”
杨教授工作室,版权所有,盗版必究, 3/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3)设置窗口内的文字的字体为“宋体”、12号、正常体
由于font属性为对象属性项目,因此需要点击最右面的“浏览”按钮,进入自定义对话框中进行设置,如下图所示——在预览中识别是否为中文“宋体”:
(4)设置窗口的图标
由于iconImage也是对象属性,同样也需要进入自定义对象的对话框,并选择该属性的设置方式为“Custom code”类型——而采用其他方式时的图像文件都是本地磁盘的绝对路径。然后输入下面黑体形式的代码——下面的代码是创建出一个Image类型的对象实例:
java.awt.Toolkit.getDefaultToolkit().getImage(getClass().
getResource("/images/loginframe/qqicon.jpg"))
杨教授工作室,版权所有,盗版必究, 4/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
当然,首先需要在项目中拷贝相关的图像文件,系统最后会自动地产生出下面形式的语句:
this.setIconImage(java.awt.Toolkit.Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/images/loginframe/qqicon.jpg")));
(5)设置窗口的背景颜色为[232, 245, 255]
(6)再设置窗口的如下属性项目
this.setResizable(false); //不能改变大小
this.setAlwaysOnTop(true); //设置为最顶层的窗口
杨教授工作室,版权所有,盗版必究, 5/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(7)设置窗口的宽度和高度——在源代码窗口中找到下面的代码
this.setSize(390, 350);
//居中显示 this.setLocationRelativeTo(null);
4、测试目前的效果
(1)由于系统在该类中已经自动添加了main()
准备好项目中所需要的各种图标图像文件,由于在窗口类中自动添加有main方法,因此可以直接执行。
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new QQLoginMainFrame().setVisible(true);
}
杨教授工作室,版权所有,盗版必究, 6/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
});
}
(2)执行的结果如下
(3)注意现在不能正常地关闭该窗口,只能选择终止进程
当然,如果窗口类中没有main方法(最好保留自动生成的main方法的代码),也可以
采用预览按钮直接预览窗口。
(4)通过预览方式查看所创建出的窗口
杨教授工作室,版权所有,盗版必究, 7/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
点击上面的“预览设计”按钮,将同样也能够看到结果窗口,但能够正常被关闭。
1.1.2 为QQ登录主窗口添加窗口关闭事件处理代码
1、添加窗口关闭事件WindowClosing
(1)进入事件面板
在windowClosing事件项目中输入事件处理的方法名称为formWindowClosing,如下图所示:
(2)或者在窗口内右击,在弹出菜单中选择“Events”下的具体事件类型
杨教授工作室,版权所有,盗版必究, 8/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3)在源代码窗口方式下编程该事件
private void formWindowClosing(java.awt.event.WindowEvent evt) {
this.dispose(); //不仅要关闭主窗口、而且也还要退出系统程序
System.exit(0);
}
(4)MyEclipse已经自动实现了事件的注册
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
杨教授工作室,版权所有,盗版必究, 9/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
});
2、测试事件是否正确
再次执行窗口程序,并点击右上角的“关闭”按钮,检查是否能够正确地关闭该窗口。 注意:
在Java Swing程序中正确地关闭程序的基本要求——释放窗口本身的资源和程序进程的资源。
1.1.3 设计QQ登录主窗口内的登录界面组件——实现顶部的Logo条及图像 1、在登录窗口的顶部添加一个标签组件
(1)添加一个JLabel标签组件
利用该标签组件显示Logo条图像,在“Swing Controls”中直接拖动“Label”组件到窗口顶部。
(2)除掉该JLabel标签组件的text属性值中的原始的“jLabel1”为空值和水平对齐方式为“左对齐”
杨教授工作室,版权所有,盗版必究, 10/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
2、设置该标签组件的宽和高位390、104
杨教授工作室,版权所有,盗版必究, 11/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
3、改变该标签组件的对象实例的名称为logoBarLabel
(1)选中右键弹出菜单中的“Change Variable Name”菜单项目
(2)在对话框中输入对象实例的名称为logoBarLabel
4、设置该JLabel标签组件的icon属性值
(1)iconImage为对象类型的属性
由于iconImage也是对象属性,同样也需要进入自定义对象的对话框,并选择该属性的设置方式为“Custom code”类型——而采用其他方式时的图像文件都是本地磁盘的绝对路径。
杨教授工作室,版权所有,盗版必究, 12/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
2)手动输入创建ImageIcon对象的代码 (
然后输入下面黑体形式的代码——下面的代码是创建出一个ImageIcon类型的对象实例:
new ImageIcon(getClass().getResource("/images/loginframe/loginFormLogoImage1.jpg
"))
杨教授工作室,版权所有,盗版必究, 13/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
5、添加动态提示信息
6、测试现在的效果
7、为该标签添加鼠标事件
(1)mouseEntered鼠标进入
杨教授工作室,版权所有,盗版必究, 14/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(2)mouseExited鼠标退出
(3)编程该事件处理方法——实现Logo图像切换
private void logoBarLabelMouseExited(java.awt.event.MouseEvent evt) {
logoBarLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource(
"/images/loginframe/loginFormLogoImage1.jpg")));
}
private void logoBarLabelMouseEntered(java.awt.event.MouseEvent evt) {
logoBarLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource(
"/images/loginframe/loginFormLogoImage2.jpg")));
}
问题:
如果有10个Logo图像文件,如何随机显示某一个图像(但鼠标退出时仍然显示原始的
图像),
/**
Random oneRandom=new Random();
//获得0-3之间的一个整数
杨教授工作室,版权所有,盗版必究, 15/16页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
int randomInteger=oneRandom.nextInt(3);
if(randomInteger==0){
randomInteger=1;
}
*/
int randomInteger=(int) (Math.random()*10);
switch(randomInteger){
case 0:
randomInteger=1;
break;
case 1:
randomInteger=1;
break;
case 2:
randomInteger=2;
break;
case 3:
randomInteger=3;
break;
default:
randomInteger=1;
break;
}
String logoImageFile="/images/loginframe/loginFormLogoImage"+randomInteger+".jpg";
杨教授工作室,版权所有,盗版必究, 16/16页
本文档为【Java语言程序设计课程设计实训项目——应用Eclipse Swing可视化开发实现仿QQ程序的界面(第1部分)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。