Java语言程序设计A实验6:GUI设计
java gui实训课程设计

java gui实训课程设计Java GUI实训课程设计引言:随着计算机技术的不断发展,图形用户界面(Graphical User Interface,GUI)已经成为了现代软件开发的重要组成部分之一。
Java作为一种广泛应用于软件开发领域的编程语言,也提供了强大的GUI库,使得开发者能够轻松地创建交互性强、界面美观的应用程序。
因此,Java GUI实训课程设计对于学生们来说具有重要的意义。
一、课程设计背景与目标Java GUI实训课程设计旨在通过实践操作,让学生们掌握Java GUI 开发的基本理论与应用技巧。
通过该课程的学习,学生们将能够独立完成一个基于Java GUI的应用程序的设计与开发,提高他们的软件开发能力和创新思维。
二、课程设计内容1. Java GUI基础知识在课程的开始阶段,学生们将系统地学习Java GUI的基本概念和原理,包括Swing组件、布局管理器、事件监听器等内容。
通过理论学习和实践操作,学生们将掌握Java GUI的基本框架和开发流程。
2. 实践项目选题在学习了Java GUI的基础知识之后,学生们将根据自己的兴趣和实际需求,选择一个适合的实践项目进行设计与开发。
项目的选题可以涉及各个领域,例如学生信息管理系统、音乐播放器、游戏界面等等。
通过实践项目的设计与开发,学生们能够将所学知识应用于实际,提升他们的综合能力。
3. 项目需求分析与设计在开始实际编码之前,学生们需要进行项目需求分析与设计。
他们需要与团队成员合作,明确项目的功能需求和界面设计,并编写相应的需求文档和设计文档。
这一阶段的工作能够帮助学生们更好地理解项目的需求,为后续的编码工作奠定基础。
4. 项目编码与测试在完成项目的需求分析与设计之后,学生们将进入项目的编码与测试阶段。
他们需要根据需求文档和设计文档编写Java代码,并进行相应的单元测试和集成测试。
通过这一阶段的工作,学生们将加深对Java GUI的理解,并掌握常用的调试技巧。
6-GUI-实验指导书(1)

大连东软信息学院Java语言程序设计实验指导书编写者:邵欣欣信息技术与商务管理系目录目录 (2)实验六 GUI程序设计 (3)1 学时 (3)2 实验目的与要求 (3)3 实验环境 (3)4 准备工作 (3)5 实验内容 (3)6 实验步骤 (3)7 思考题 (6)实验六 GUI程序设计1 学时6学时2 实验目的与要求掌握框架的使用方法,掌握布局管理器的方法,熟练使用各种常用组件,掌握事件处理方法,掌握图形编程3 实验环境Jdk1.5或以上版本4 准备工作确认JDK、Eclipse开发环境可用。
实验原理:⏹创建JFrame或其子类的实例 JFrame frame = new JFrame();⏹设置布局 frame.getContentPane().setLayout(一种布局);⏹添加组件 frame.getContentPane().add(一种组件);⏹设置关闭 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);⏹显示窗体 frame.setVisible(true);⏹注册事件监听器组件.addXXXListener(监听者);5 实验内容1.练习事件处理 2学时2.练习使用各种组件 2学时3.练习图形编程 2学时6 实验步骤一、练习布局管理器1.编写程序实现如下界面:2.编写一个空白窗体,300宽,300高,完成如下显示:3.编写程序实现如下界面:二、练习事件处理1.编写一个窗体,窗体上有两个按钮,按钮上分别为“确定”和“取消”,当点击“确定”按钮时,在控制台输出点击“确定”按钮及次数,当点击“取消”按钮时,在控制台输出点击“取消”按钮及次数。
2.编写一个猜数字的小游戏,界面如下,能够在反馈信息的位置显示“猜对了”,“猜大了”或者“猜小了”。
三、练习使用各组件1.编写一个空白窗体,300宽,300高,做出如下显示的效果,假设共有10张票,订没为止。
Java语言程序设计课程设计实训项目——应用JavaSwingGUI组件技术实现课程选课系统GUI窗

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( evt) {/*** (1)获得操作者在登录窗口内所输入的帐号和密码等相关的信息(数据)*/String loginName =loginNameTextField.getText();String passWord =passWordTextField.getText();/*** (2)识别(判断)所提交的登录的身份信息是否“合法”*//*** 识别当前的登录信息是否合法,并分别返回不同的状态(=true表示登录成功,=false表示登录失败)*//*** 登录成功,则从缓存中获得登录者的相关信息(姓名、学号、学院名称登数据),并再缓存在已经登录成功的学生信息(会话跟踪)中*/DataBase.loginedStudentInfoPO=(StudentInfoPO);/*** (3)显示登录成功的信息*/"***************你登录成功!**************\n");}else{/*** (3)显示登录失败的信息*/"***************你登录失败!***************\n");}/*** (4)关闭当前的登录窗口——只关闭当前的窗口但不退出主程序*/this.dispose();}3、编程StudentLoginWindow类中cancelLoginButtonActionPerformed取消按钮的事件响应方法private void cancelLoginButtonActionPerformed( 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 */}在该方法中弹出登录窗口,并等待登录者进行操作。
GUI 程序设计实验报告

广州大学实验报告学院工商管理学院专业、班级电子商务姓名、学号课程名称Java语言程序设计项目名称GUI 程序设计实验时间:2013年06月09日GUI 程序设计实验报告开课实验室:文俊东606 2013年06月09日2. 由于GUI程序已是消息驱动的,程序运行后就处于一个循环中,因此原仿真程序中Calcface中的input()方法以及Calculator中的on()方法就可弃之不用了。
3.改造Toyface,为计算器界面布局,并将Toyface与Runcale 合并使之能与calculator相连。
4. System.out.println需改成向Jlabel对象输出的语句三、实验过程原始记录(数据、图表、计算等)1.运行程序2.进行运算3.计算器其他按钮的功能实现1)C的功能实现按C后计算机只录入9*;2)N的功能实现按N后结果变成-153)A的功能实现按A后清空归零四、实验感悟本次实验相对比较简单,只需要安排好显示界面和将两个合并之后再对一些细节部分进行修改就可以了。
完成实验后我对显示界面的布局更加了解了。
五、附录(自己实现的源代码)/////// CalcFace.java ///////import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import javax.swing.BorderFactory;import javax.swing.JLabel;import javax.swing.JPanel;import poundBorder;class CalcFace extends JPanel implements ActionListener{public CalcFace(String k, byte pr){keys = k;prec = pr++;nbuf = new StringBuffer(prec);reset1();errorMode=false;errorStr="";d = new JLabel(in, JLabel.RIGHT);setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLoweredBevelBorder(),BorderFactory.createEmptyBorder(5,10, 5, 10)));setLayout(new BorderLayout()); //设置布管理器reset2();add(d);addMouseListener(new ClickHandler(this)); //注册事件监听器}public void setCalc(Calculator ca){calc = ca;public void showNumber(String s) {d.setText(hl+prompt + s+ht);}public void showOp(char op) {}//如果输入的str为空,则清除errorMode//相当于主控模决发送一个消息给计算器,使其可知道当前计算器对象当前的状态public void errorInput(String str){if(str.equals("")){errorMode=false;errorStr="";}else{errorMode=true;errorStr=str;prompt=prompt+"( "+str+ " )";}}public void showStatus(String e){prompt=e;}private void enter(char c){//当计算器处于溢出状态时,只充许其在下面这段代码中执行。
高级java实验报告GUI设计

return new Dimension(200,30);
}
public synchronized void addActionListener(ActionListener listener)
{
if(actionListenerList == null)
{
actionListenerList = new ArrayList<ActionListener>(2);
import java.util.ArrayList;
import javax.swing.JPanel;
public class MessagePanelWithActionListener extends JPanel implements MouseListener
{
private String message = "Welcome to Java";
// TODO Auto-generated method stub
processEvent(new ActionEvent(this,ActionEvent.ACTION_PERFORMED,null));
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
选择颜色,使用该颜色设置颜色标签,反映颜色变化。
(3)对CircleController进行修改,在颜色控制按钮的事件
处理中,使用控制器得到的用户颜色,修改对应的CircleModel对
象的颜色属性设置。
(4)运行程序,启动用户测试程序MVCDemo.java(程序清单
Java的GUI设计.ppt

第9章 Java的GUI设计
● public Rectangle getBounds() 返回组件外框矩形的范围,这个范围定义了
组件的宽、高和相对其容器的坐标位置。 ● public void setBounds(Rectangle r)
设置组件的位置、宽度和高度,可用于移动 组件或改变其大小。除非此组件的容器没有使用 布局管理器,否则这两个方法不生效。
第9章 Java的GUI设计
位置、尺寸、父容器、前景和背景色、 最小/最大和首选尺寸等。
Java 语 言 中 , 面 板 (Panel) 、 滚 动 条 (Scrollbar) 、 按 键 (Button) 、 标 签 (Label)等等用户界面组件一般都派生自 ponent类。图9.1是一 些主要的AWT组件的结构层次。
滚动组件
Container的扩展,没有菜单或边界,是Frame 和Dialog的超类
第9章 Java的GUI设计
容器只能记录包含的组件,
而布局管理器则负责指定容器中组件的 位置和大小。Java的布局管理器只需要 确定组件和其他组件的相对位置,而不 需要决定它的坐标,这样的安排令与平 台无关的用户界面更易于实现。AWT中 提供了五种布局管理器:
这三个方法用于返回组件矩形外框的左上角的 坐标,这个坐标也是相对于其父组件而言的。 ● public Dimension getSize() ● public int getWidth() ● public int getHeight()
返回该组件的高度和宽度。
第9章 Java的GUI设计
● public void setSize(int width, int height) ● public void setSize(Dimentsion d)
JAVA -- GUI设计报告

《Java程序设计》大作业报告题目:JA V A综合应用物联网学院电信1102 专业学号0703110220学生姓名曹晓桂指导教师张景莉评定成绩二〇一四年十二一、设计要求1、目的要求学生运用Java集成开发工具(如:JCREATOR、Eclipse等),独立编写一个综合应用程序,使学生能够通过实践,将面向对象程序设计的理论、技术、方法和Java语言相结合,熟练使用Java类库进行一些较为复杂实例的应用系统程序设计,包括GUI设计、输入输出流、异常处理和Web应用程序设计等。
2 、开发环境1.系统环境:Windows 7系统1. jdk版本:jdk1.7.0_602.集成开发环境:JCREATOR3、设计要求:创建一个GUI界面,运用一个包含2个选项卡的选项卡面板,实现以下功能:⑴“自我介绍”选项卡:显示设计者的个人信息,包括学号、姓名、本人的两张不同的照片(至少一张为单人照)和英文自我简介(不得少于50个单词),然后在一个弹出的信息窗口中显示自我简介的字数。
⑵“文件测试”选项卡:对用户输入的一个名称进行判断,名称由文本框输入。
如果是一个文件名,则输出该文件相关属性(文件名、绝对路径和文件的长度等)。
如果是一个目录,则输出该目录下的对象个数。
如该名称不存在,则以此名称为名在当前目录下创建一个文件,内容自定。
二、设计思路1、设计思路根据老师给的设计要求,确定了如下的设计思路:⑴首先在JFrame窗口中创建一个JTabbedPane选项卡面板⑵在选项卡面板里创建2个选项卡,分别为“自我介绍”,“文件测试”。
⑶在面板里分别添加三个子面板,位于每个面板的上中下。
⑷根据设计要求在各子面板上添加组件。
⑸给按钮添加事件响应。
⑹测试功能是否实现,检查有无明显缺陷。
三、实现代码和运行结果1、实现过程和代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.StringTokenizer;public class JTabbedPaneDemo extends JFrame{private JLabel name,number,clabel,dlabel,name2;private JTextField nameText,numberText,cText,dText,name2Text;private JTextArea textArea1,textArea2;private JButton showButton,analyseButton,testButton, writeButton,emptyButton;private File file;private String str = new String("Hi boys and girls."+"\n"+"My name is caoxiaogui,I am from Nantong!"+"\n"+"I am a student from jiangnan university and my major is electronic information engineering "+"\n"+" I spend most of my time on study and I like play pingpang. "+"\n"+"I have acquired basic knowledge of my major during my school time. "+"\n"+"That is all.Thank you!");public static void main(String[] args) {new JTabbedPaneDemo().setVisible(true);//设置组建可视}public JTabbedPaneDemo(){ super("曹晓桂0703110220作业");//给窗口标题命名JTabbedPane tabbedPane=new JTabbedPane();//创建panel1JLabel label1=new JLabel("firstPane",SwingConstants.CENTER);JPanel firstPane = new JPanel();firstPane.setLayout(new BorderLayout());tabbedPane.addTab("自我介绍",null,firstPane,"First Panel");//分别添加3个子面板JPanel[] panel = new JPanel[3];panel[0] = new JPanel();panel[1] = new JPanel();panel[2] = new JPanel();firstPane.add(panel[0], BorderLayout.NORTH);firstPane.add(panel[1], BorderLayout.CENTER);firstPane.add(panel[2], BorderLayout.SOUTH);//创建姓名,学号标签及文本框并添加name=new JLabel("学号:");nameText=new JTextField(10);nameText.setEditable(false);number=new JLabel("姓名");numberText=new JTextField(10);numberText.setEditable(false);panel[0].add(number);panel[0].add(numberText);panel[0].add(name);panel[0].add(nameText);//创建图像标签,对象,设置标签相对于图像的位置并添加Icon bug1 = new ImageIcon("生活照.jpg");clabel = new JLabel("照片1:",bug1,SwingConstants.LEFT); clabel.setHorizontalTextPosition(SwingConstants.CENTER); clabel.setVerticalTextPosition(SwingConstants.BOTTOM); Icon bug2 = new ImageIcon("生活照.jpg");dlabel = new JLabel("照片2:",bug2,SwingConstants.RIGHT); dlabel.setHorizontalTextPosition(SwingConstants.CENTER); dlabel.setVerticalTextPosition(SwingConstants.BOTTOM); textArea1=new JTextArea(6,45);panel[1].add(clabel);panel[1].add(textArea1);panel[1].add(dlabel);//创建按钮并给按钮添加事件响应showButton=new JButton("show");showButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {showMessage();}});analyseButton=new JButton("analyse");analyseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {showWordNumber();}});panel[2].add(showButton);panel[2].add(analyseButton);//创建panel2JLabel label2=new JLabel("secondPane",SwingConstants.CENTER); JPanel secondPane=new JPanel();secondPane.setLayout(new BorderLayout());tabbedPane.addTab("文件测试",null,secondPane,"Second Panel"); //分别添加3个子面板JPanel[] panel2 = new JPanel[3];panel2[0] = new JPanel();panel2[1] = new JPanel();panel2[2] = new JPanel();secondPane.add(panel2[0], BorderLayout.NORTH); secondPane.add(panel2[1], BorderLayout.CENTER); secondPane.add(panel2[2], BorderLayout.SOUTH);//创建标签及文本框并添加name2=new JLabel("请输入名称:");name2Text = new JTextField();name2Text.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if(!name2Text.getText().equals(""))testButton.setEnabled(true);}});name2Text.setColumns(20);panel2[0].add(name2);panel2[0].add(name2Text);textArea2=new JTextArea(6,45);panel2[1].add(textArea2);testButton = new JButton("test");writeButton = new JButton("write");writeButton.setEnabled(false);emptyButton = new JButton("empty");panel2[2].add(testButton);panel2[2].add(writeButton);panel2[2].add(emptyButton);testButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {testAction();}});writeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {writeAction();}});emptyButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {emptyAction();}});getContentPane().add(tabbedPane);setSize(800,300);//设置窗口大小setVisible(true);}//显示信息与照片public void showMessage() {numberText.setText("0703110220");nameText.setText("曹晓桂");textArea1.setText(str);}//分析自我介绍的英文字数public void showWordNumber() {int wordNum = 0;String str = textArea1.getText();StringTokenizer st = new StringTokenizer(str);while (st.hasMoreElements()) {st.nextElement();wordNum++;}JOptionPane.showMessageDialog(null, "曹晓桂,您的简历字数为:" + wordNum, "简历字数统计",JOptionPane.PLAIN_MESSAGE);}//文件测试的实现public void testAction() {String str = name2Text.getText();if (!str.equals("")) {file = new File(str);if (file.isFile()) {String path = file.getAbsolutePath();String length = file.length() + "B";textArea2.setText("这是一个文件,其相关属性为:File Name: "+ file.getName() + "\n" + "Path: " + path + "\n"+ "Length: " + length);} else if (file.isDirectory()) {String[] fileName = file.list();textArea2.setText("这是一个目录,它下面有" + fileName.length+ "个对象。
JAVA实验报告 图形用户界面设计 GUI

实验报告
课程 专业班级 姓名
java 程序设计
实验项目 Leabharlann 内序号 学号图形用户界面成绩 指导教师 实验日期
2010-1-4
实验目的:
public Dial(JFrame frame,String title,boolean b){ super(frame,title,b); getContentPane().setLayout(new FlowLayout()); panel.add(text); panel.add(btn1); btn1.addActionListener(this); getContentPane().add(panel); pack(); } public void actionPerformed(ActionEvent event){ this.dispose(); } public String getSt(){ return text.getText(); } }
add(label); add(scr); } }
运行结果如图所示
2. 练习使用对话框。包括一个JLabel和两个JButton,按任何一个JButton都会产生一个输入对话框, 按确定后将输入内容在JLabel中显示出来
源代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class frameTest{ public static void main(String args[]){ CFrame frame=new CFrame("Frame Test"); Container pane=frame.getContentPane(); pane.add(new leftPanel(),BorderLayout.WEST); pane.add(new rightPanel(),BorderLayout.EAST); frame.pack();
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
tf=newTextField();
tf.setPrefSize(200, 150);
btnOk.setOnAction(newEventHandler<ActionEvent>() {
publicvoidhandle(ActionEventae) {
{
ButtonokButton=newButton("OK");
ButtoncalBtondel=newButton("Cancle");
TextAreatxtarea=newTextArea(50,50);
publicstaticvoidmain(String[]a2、小结、建议及体会
现在自己对于用javaFx编写GUI应用程序还不够熟练,感觉还未掌握核心的内容,只是依葫芦画瓢,参照老师的实例程序来联系,之后还用加强这块只是的学习,多多实战学习,掌握其思想。
二.实验基本原理与方法
1.事件处理机制及ActionListener接口的实现。
2.使用Swing类库设计GUI的大体思路。
3.使用Java FX设计GUI的大体思路。
三.主要仪器设备及耗材
1.PC及其兼容机。
2.计算机操作系统。
3.程序编辑器EditPlus。
4.Java开发工具JDK。
四.实验内容及要求
实验项目6-1:使用Swing,编写一个简单的GUI应用程序,显示一个窗体,窗体标题栏显示"My Swing Program",窗体中间有两个按钮,按钮上分别显示"OK"、"Cancel",单击OK按钮,显示"Welcome to Swing Program! ",单击"Cancel",退出应用程序。
FlowPaneroot=newFlowPane(10,10);
root.setAlignment(Pos.CENTER);
ScenemyScene=newScene(root, 300, 200,Color.BLACK);
myStage.setScene(myScene);
ButtonbtnOk=newButton("Ok");
okButton.addActionListener(this);
calBtondel.addActionListener(this);
setVisible(true);
}
@Override
publicvoidactionPerformed(ActionEvente) {
if(e.getSource()==okButton)
importjavafx.stage.*;
yout.*;
importjavafx.scene.paint.Color;
importjavafx.scene.control.*;
importjavafx.event.*;
importjavafx.geometry.*;
tf.setText("Welcome to Java FX Program! ");
}
});
btnCal.setOnAction(newEventHandler<ActionEvent>() {
publicvoidhandle(ActionEventae) {
System.exit(0);
}
});
实验课程名称:Java语言程序设计A
实验项目名称
实验6:GUI设计
实验成绩
实验者
专业班级
组别
同组者
无
开始日期
第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等)
一.实验目的及意义
1.理解并应用事件处理机制。
2.分别掌握Swing、Java FX的简单的窗体及按钮设计。
{
txtarea.setText("Welcome to Swing Program! ");
}
if(e.getSource()==calBtondel)
{
System.exit(0);
}
}
}
运行结果:
实验6-2
类MyFxGUI源代码:
importjavafx.application.*;
importjavafx.scene.*;
publicclassMyFxGUIextendsApplication
{
TextFieldtf;
publicstaticvoidmain(String[]args)
{
launch(args);
}
publicvoidstart(StagemyStage) {
myStage.setTitle("My JavaFX Program");
实验项目6-2:使用Java FX,编写一个简单的GUI应用程序,显示一个窗体,窗体标题栏显示"My Java FX Program",窗体中间有两个按钮,按钮上分别显示"OK"、"Cancel",单击OK按钮,显示"Welcome to Java FX Program! ",单击"Cancel",退出应用程序。
root.getChildren().addAll(btnOk,btnCal,tf);
myStage.show();
}
}
运行结果:
教师签字__________
第三部分结果与讨论(可加页)
1、实验结果分析(包括数据处理、影响因素讨论、综合分析和结论等)
通过简单的练习,可以看出,javaFx相对于Swing更易管理,易操作,并且样式上更加美观,由于是先学习了swing之后,在学习javaFX,发现二者虽然功能相似,但在整体组织、组件关系上都有很大区别。
第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)
实验6-1
类MySGUI源代码:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassMySGUIextendsJFrameimplementsActionListener
}
publicMySGUI()
{
setTitle("My Swing Program");
setLocation(450,450);
setSize(400,300);
setLayout(newFlowLayout());
add(okButton);
add(calBtondel);
add(txtarea);