Java语言程序设计课程设计实训项目——应用JavaSwingGUI组件技术实现课程选课系统GUI窗口第3部分
- 格式:doc
- 大小:360.00 KB
- 文档页数:11
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按钮。
(2)输入包名称为com.px1987.imsystem.frame,类名称为QQLoginMainFrame,并选择Swing JFrame类型点击“Finish”按钮,将进入可视化设计器视图同时也会在项目中自动添加系统库swing-layout-1.0.3.jar和AbsoluteLayout.jar()包文件3、设置QQLoginMainFrame窗口的属性(1)由于需要监控窗口的关闭行为,因此不应该再直接关闭窗口和退出程序因此首先选中主窗口,然后在属性面板中设置defaultCloseOperation项目为DO_NOTHING_ON_CLOSE。
(2)将窗口的标题条属性title项目设置为“QQ登录主窗口”(3)设置窗口内的文字的字体为“宋体”、12号、正常体由于font属性为对象属性项目,因此需要点击最右面的“浏览”按钮,进入自定义对话框中进行设置,如下图所示——在预览中识别是否为中文“宋体”:(4)设置窗口的图标由于iconImage也是对象属性,同样也需要进入自定义对象的对话框,并选择该属性的设置方式为“Custom code”类型——而采用其他方式时的图像文件都是本地磁盘的绝对路径。
然后输入下面黑体形式的代码——下面的代码是创建出一个Image类型的对象实例:java.awt.Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/loginframe/qqicon.jpg"))当然,首先需要在项目中拷贝相关的图像文件,系统最后会自动地产生出下面形式的语句: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); //设置为最顶层的窗口(7)设置窗口的宽度和高度——在源代码窗口中找到下面的代码this.setSize(390, 350);this.setLocationRelativeTo(null); //居中显示4、测试目前的效果(1)由于系统在该类中已经自动添加了main()方法准备好项目中所需要的各种图标图像文件,由于在窗口类中自动添加有main方法,因此可以直接执行。
图形界面(GUI)程序设计一、课题内容和要求内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。
要求:学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法。
通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。
二、设计思路分析class RMBtoDollar:主类,调用主函数。
class change:设置界面,并通过界面上的事件触发实现汇率转换。
三、概要设计public class RMBtoDollar{public static void main(String[] args);}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change();public void mousePressed(MouseEvent e);public void mouseClicked(MouseEvent e);public void mouseEntered(MouseEvent e);public void mouseExited(MouseEvent e);public void mouseReleaseed(MouseEvent e);//鼠标释放时进行转换}四、详细设计import java.awt.*;import java.awt.event.*;import javax.swing.*;public class RMBtoDollar {public static void main(String[] args) {new change();}}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change() {//添加组件和设置布局l1 = new JLabel("人民币/元:");l2 = new JLabel("美元/dollar:");l3=new JLabel("(汇率:6.17)");tf1 = new JTextField(12);tf2 = new JTextField(12);b = new JButton("转换");add(l1);add(tf1);add(l2);add(tf2);add(l3);add(b);setLayout(new FlowLayout(FlowLayout.CENTER));setTitle("人民币转换为美元");setBounds(300, 300, 300, 150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);b.addMouseListener(this);//鼠标事件监视器}public void mousePressed(MouseEvent e) {if (tf2.getText() != null) {// tf2 test 默认初始设为空tf2.setText("");}}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseReleased(MouseEvent e) {if (tf1.getText() != null) {// 检查tf1 test 是否为空try {// 取异常RMB = Double.parseDouble(tf1.getText());// 字符转为double型Dollar = RMB / 6.17;//转换tf2.setText("" + Dollar);// 显示} catch (Exception ex) {tf1.setText("");// 如果输入不是数字,设为空}}}}五、测试数据及其结果分析1正常输入:2输入字符串不能转为double型时清空输入框:3结果:输出正常。
Java课程设计GUI一、教学目标本课程的目标是让学生掌握Java语言的GUI(图形用户界面)编程。
通过本课程的学习,学生将能够理解GUI编程的基本概念,熟悉Java Swing和JavaFX两种常用的GUI库,掌握GUI应用程序的设计和实现方法。
知识目标:使学生掌握GUI编程的基本概念,理解事件驱动编程机制,熟悉Java Swing和JavaFX两种常用的GUI库。
技能目标:使学生能够运用Java语言设计和实现简单的GUI应用程序,具备解决实际问题的能力。
情感态度价值观目标:培养学生对编程的兴趣,增强其自主学习和创新意识,使其认识到计算机技术在现代社会中的重要性。
二、教学内容本课程的教学内容主要包括GUI编程的基本概念、Java Swing和JavaFX两种常用的GUI库。
具体安排如下:1.GUI编程的基本概念:包括事件驱动编程机制、组件、布局管理器等。
2.Java Swing:包括Swing组件、事件处理、高级Swing技巧等。
3.JavaFX:包括FXML、JavaFX组件、场景图、媒体和动画等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:用于讲解GUI编程的基本概念、原理和方法。
2.讨论法:用于引导学生探讨和解决实际问题,培养其解决问题的能力。
3.案例分析法:通过分析典型案例,使学生更好地理解和掌握GUI编程技巧。
4.实验法:让学生动手实践,培养其编程能力和实际操作技能。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《Java GUI编程实战》2.参考书:《JavaFX编程指南》、《Swing编程指南》3.多媒体资料:教学PPT、视频教程、在线文档等。
4.实验设备:计算机、网络环境、编程软件等。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
大二java课程设计swing一、教学目标本课程的教学目标是使学生掌握Java编程语言中的Swing图形用户界面(GUI)开发技术。
通过本课程的学习,学生将能够:1.理解Swing组件的基本原理和用法,如JFrame、JButton、JTextField等。
2.熟练使用布局管理器,如FlowLayout、BorderLayout、GridLayout等,来设计窗口布局。
3.掌握事件处理机制,能够编写事件监听器来响应用户操作。
4.能够使用Swing绘图工具类,如Graphics、Graphics2D等,实现简单的图形绘制。
5.理解菜单栏、工具栏、状态栏等高级组件的使用方法。
6.掌握多线程编程的基本概念,能够利用Swing实现多线程应用。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Swing概述:介绍Swing的发展历程、特点和基本使用方法。
2.Swing组件:详细讲解常用的Swing组件,如按钮、文本框、列表、组合框等。
3.布局管理器:介绍各种布局管理器的原理和用法,并通过实例展示如何设计美观的窗口布局。
4.事件处理:讲解事件监听器的原理和用法,以及如何处理用户输入事件、动作事件等。
5.绘图技术:介绍Swing的绘图工具类,如Graphics、Graphics2D等,并通过实例展示如何绘制基本图形和图像。
6.高级组件:讲解菜单栏、工具栏、状态栏等高级组件的使用方法,以及如何实现菜单项的勾选效果。
7.多线程编程:介绍多线程编程的基本概念,讲解如何在Swing应用程序中实现多线程,以及线程同步的方法。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用以下教学方法:1.讲授法:教师讲解Swing的基本概念、原理和用法,引导学生理解并掌握相关知识。
2.案例分析法:通过分析典型实例,让学生了解Swing组件的应用场景和实现方法。
3.实验法:安排上机实验,让学生动手实践,巩固所学知识,提高编程能力。
Java语言程序设计课程教学辅导技术资料——第8章JavaGUI技术—AWT组件及事件编程目录1.1Java语言程序设计课程教学辅导技术资料——第8章Java GUI 技术—AWT组件及事件编程 (2)1.1.1Java GUI编程 (2)1.1.2Java AWT中容器组件 (4)1.1.3Java AWT中的菜单组件 (11)1.1.4GUI用户界面的事件编程 (13)1.1.5综合实例:利用AWT技术所实现的一个Java Application 程序 (17)1.1Java语言程序设计课程教学辅导技术资料——第8章Java GUI 技术—AWT 组件及事件编程【教学目标】在本单元中希望您重点了解并掌握如下知识点:AWT 抽象窗口工具集实现的原理,四大类AWT GUI组件的编程技术(基本组件、容器组件、菜单条菜单组件和弹出式菜单组件),事件编程技术(ActionListener、MouseListener、ItemListener和WindowListener)。
1.1.1Java GUI编程1、GUI界面(1)用户与程序之间交互的一个控制面板,其内包含有菜单、控件(或组件)和容器并能响应用户的事件。
(2)面向对象的图形用户界面基于“面向对象”的思想互相交换信息,即尽可能在屏幕上用形象的图标和窗口等来代表有用的资源和可启用的对象。
图形界面对象:代表特定的软件、命令、过程、资源、提示信息等的资源(图标(Icon)、窗口(Window)、菜单(Menu)/菜单项(Menu Item)、按钮(Button)、文本框(Label)、列表框(List)…等)2、Java中的GUI实现方式(1)采用AWT(抽象窗口工具集)技术从而可使GUI适用于不同OS的环境。
抽象窗口工具包AWT (Abstract Window Toolkit) 是API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。
1.1Java Swing GUI组件技术教学参考示例(第1部分)1.1.1模拟实现Windows资源管理器的示例1、产生一个类似Windows的资源管理器的窗口(1)SwingExplorerMainFrame,包名称为com.px1987.javaapplication.swing,并且从javax.swing.JFrame类继承(2)编程SwingExplorerMainFrame类的代码package com.px1987.javaapplication.swing;import java.awt.Cursor;import java.awt.Font;import java.awt.GraphicsConfiguration;import java.awt.HeadlessException;import java.awt.Image;import java.awt.Toolkit;import javax.swing.JFrame;public class SwingExplorerMainFrame extends JFrame {public SwingExplorerMainFrame() throws HeadlessException {super();initThisFrame();}public SwingExplorerMainFrame(GraphicsConfiguration gc) {super(gc);initThisFrame();}public SwingExplorerMainFrame(String title) throws HeadlessException { super(title);initThisFrame();}public SwingExplorerMainFrame(String title, GraphicsConfiguration gc) { super(title, gc);initThisFrame();}private void initThisFrame(){this.setTitle("利用Java Swing构造的Windows资源管理器");this.setFont(new Font("宋体", Font.PLAIN, 12));Image oneIconImage=Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/mainframe/mainframeIconImage.jpg"));this.setIconImage(oneIconImage);// this.setResizable(false);// this.setAlwaysOnTop(true);// this.setCursor(Cursor.HAND_CURSOR);// this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);this.setVisible(true);// this.setSize(400,300);this.setExtendedState(JFrame.MAXIMIZED_BOTH);this.setLocationRelativeTo(null); //居中显示}}(3)代码中的几个常量的含义1)DO_NOTHING_ON_CLOSE //什么也不做2)HIDE_ON_CLOSE //隐藏当前窗口3)DISPOSE_ON_CLOSE //隐藏当前窗口,并释放窗体所占有的其它资源4)EXIT_ON_CLOSE // 结束窗体所在的应用程序这4个常量都是JFrame类中的int类型,也可以应用下面的代码实现将鼠标消失(隐藏)的效果。
1.1应用Eclipse Swing可视化开发实现仿QQ程序的界面(第2部分)1.1.1设计QQ登录主窗口内的登录界面组件——实现中部的Tabbed Panel组件1、在窗口的中间添加一个JTabbedPanel组件(1)在组件库中选中JTabbedPanel组件(2)将该JTabbedPanel组件添加到窗口中2、改变该组件的背景颜色为[191, 230, 255]改变组件对象的background属性,可以改变该组件的背景颜色。
3、改变该组件的对象名称为centerTabbedPanel4、在该JTabbedPanel组件内添加三个内容面板组件(1)在组件库窗口中选中JPanel组件(2)将JPanel组件添加到JTabbedPanel组件内(3)依次再添加另外两个JPanel面板组件到JTabbedPanel组件内但要注意的是,为了能够正确地将面板添加到JTabbedPanel组件内,最好采用下面的方式添加JPanel面板组件,否则对面板的包含关系会出现问题。
(4)最后为下面的结果5、分别命名各个面板对象的名称(1)imCodeSystemLoginPanel(2)emailSystemLoginPanel(3)mobileSystemLoginPanel(4)最后为下面的结果6、设置JTabbedPanel组件和各个Tabbed面板的属性(1)修改每个Tabbed面板的标题文字(Tab Title)属性三个面板的标题文字分别为:●IM号登录●Email登录●手机登录(2)修改每个Tabbed面板的ToolTip帮助信息(Tab Tooltip)属性三个面板的ToolTip帮助信息分别为:●在此页面中需要采用IM号登录系统,并且按Alt+1键可以切换!●在此页面中需要采用EMail登录系统,并且按Alt+2键可以切换!●在此页面中需要采用手机号登录系统,并且按Alt+3键可以切换!(3)最后实际运行后的结果如下:7、为IM号登录的Tabbed面板添加标题图标(Tab Icon)(1)直接选择目标图标文件(2)在用户化代码对话框中输入下面的代码new ImageIcon(getClass().getResource("/images/loginframe/imtabImage.jpg")) (3)输入代码后的结果图示8、为Email登录的Tabbed面板添加标题图标(Tab Icon)(1)在用户化代码对话框中输入下面的代码new ImageIcon(getClass().getResource("/images/loginframe/emailtabImage.jpg")) (2)输入代码后的结果图示9、为手机号登录的Tabbed面板添加标题图标(Tab Icon)(1)在用户化代码对话框中输入下面的代码new ImageIcon(getClass().getResource("/images/loginframe/mobiletabImage.jpg")) (2)输入代码后的结果图示10、测试现在的效果11、为每个Tabbed面板添加快捷键(1)在左下类结构窗口中选中Tabbed面板组件对象(centerTabbedPanel)(2)在“用户化代码”对话框中输入下面的代码centerTabbedPanel.setMnemonicAt(0, KeyEvent.VK_1);centerTabbedPanel.setMnemonicAt(1, KeyEvent.VK_2);centerTabbedPanel.setMnemonicAt(2, KeyEvent.VK_3);(3)然后再导入import java.awt.event.KeyEvent;包语句(4)最后测试是否能够Alt+1、Alt+2和Alt+3分别切换各个Tabbed面板注意:可以设置Tabbed面板组件对象的selectedIndex属性值,改变Tabbed面板组件对象的默认选中的面板(5)改变各个面板的背景颜色[192,230,255]。
《Java程序设计-实验报告》
计算机科学系级班
课程名:《Java程序设计》
姓名:
学号:
指导教师:
实验项目:“Java GUI程序设计”
实验目的:
1、熟悉和掌握java Swing的基本GUI程序设计,掌握如何构建一个窗口程序,并且窗口中添加常用的Swing组件,使用各种布局管理器来完成对窗口中的组件进行布局。
2、了解Java事件处理机制,掌握基本的事件处理机制的基本程序编写。
实验要求:
使用java语言完成相关程序设计要求,编写代码、调试、运行,将编写的程序写在题目要求后面,对结果进行分析、得出编程的结论和心得。
实验内容:(两个题目,二选一)
1、试着用Swing类库完成以下程序界面(自行截图,尽量与下面界面接近):
2、试着用Swing类库完成以下程序界面(自行截图,尽量与下面界面接近):
提交要求:独立完成以上各个程序,查询相关资料和文档完成以上程序设计,将最后做完的界面截图,摘抄部分关键程序语句,写出碰到的问题,如何接近,心得总结等,17周之内提交打印文档。
1.1应用Java Swing GUI组件技术实现课程选课系统GUI窗口(第3部分)1.1.1编程登录窗口StudentLoginWindow类中的登录、取消等按钮的事件响应
1、在StudentLoginWindow类中添加一个标识登录成功或者失败的结果标识变量
private boolean loginResultState=false;
并为该成员变量提供get/set方法
2、编程StudentLoginWindow类中loginNameButtonActionPerformed登录按钮的事件响应方法
private void loginNameButtonActionPerformed(java.awt.event.ActionEvent evt) { /**
* (1)获得操作者在登录窗口内所输入的帐号和密码等相关的信息(数据)
*/
String loginName =loginNameTextField.getText();
String passWord =passWordTextField.getText();
/**
* (2)识别(判断)所提交的登录的身份信息是否“合法”
*/
/**
* 识别当前的登录信息是否合法,并分别返回不同的状态(=true表示登录成功,=false表示登录失败)
*/
if(DataBase.allStudentInfo.containsKey(loginName+passWord)){
/**
* 登录成功,则从缓存中获得登录者的相关信息(姓名、学号、学院名称登数据),并再缓存在已经登录成功的学生信息(会话跟踪)中
*/
DataBase.loginedStudentInfoPO=
(StudentInfoPO)DataBase.allStudentInfo.get(loginName+passWord);
/**
* (3)显示登录成功的信息
*/
System.out.println("***************你登录成功!**************\n");
}
else{
/**
* (3)显示登录失败的信息
*/
System.out.println("***************你登录失败!***************\n");
}
/**
* (4)关闭当前的登录窗口——只关闭当前的窗口但不退出主程序
*/
this.dispose();
}
3、编程StudentLoginWindow类中cancelLoginButtonActionPerformed取消按钮的事件响应方法
private void cancelLoginButtonActionPerformed(java.awt.event.ActionEvent evt) { this.dispose();
}
1.1.2整合登录窗口StudentLoginWindow和StudentManageImple功能类
1、修改StudentManageImple类中的systemLogin方法
public void systemLogin() {
/**
* (1)弹出(创建)出登录窗口词法分色
*/
StudentLoginWindow loginWindow=new StudentLoginWindow();
/**
* (2)显示出该窗口关键字(保留字)
*/
loginWindow.setVisible(true); /** true false */
}
在该方法中弹出登录窗口,并等待登录者进行操作。
2、执行SystemMainWindow程序类中的main函数以测试目前的功能
将弹出主窗口
(1)测试登录功能按钮的正确性
在窗口内选择其中的“系统登录”按钮,将弹出系统登录的窗口。
在弹出的登录窗口内输入帐号和密码——应该与注册时所输入的帐号和密码保持一致性。
点击登录窗口内的“登录”按钮,在控制台中将出现登录后的结果
1.1.3实现在线选课系统的窗口OnLineSelectCourseWindow的UI界面
1、新建一个课程选课窗口
类名称为OnLineSelectCourseWindow,包名称为com.px1987.course.ui
将创建出如下的窗口
2、在该窗口内添加与课程选课相关的组件
再分别相关标签的提示文字
再分别修改每个组合框组件的对象名称
1)courseName(课程名称)
2)teacherName(授课教师姓名)
3)courseTime(上课时间)
4)courseCreit(课程学分)
再分别设置各个组合框内的的列表项
3、在窗口内添加两个按钮
再修改按钮上的提示文字
再修改按钮的对象名称confrimButton和cancelButton
再为两个按钮添加事件
4、测试现在的结果。