实验6图形用户界面设计及代码
- 格式:doc
- 大小:1.74 MB
- 文档页数:4
图形界面(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结果:输出正常。
西安邮电大学(计算机学院)课内实验报告实验名称:图形用户界面专业名称:计算机科学与技术班级:计科1405班学生姓名:高宏伟学号:04141152指导教师:刘霞林实验日期:2016.11.24一、实验目的了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
二、实验要求1. 掌握使用布局管理器对组件进行管理的方法。
2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
3. 掌握编写独立运行的窗口界面的方法。
4. 掌握组件的使用方法。
5. 了解对话框的使用方法。
三、实验内容(一)算术测试。
✧实验要求:编写一个算术测试小软件,用来训练小学生的算术能力。
程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是软件的主类。
✧程序模板:Teacher.javapublic class Teacher{ int numberOne,numberTwo;String operator="";boolean right;public int giveNumberOne(int n){ numberOne=(int)(Math.random()*n)+1;return numberOne;}public int giveNumberT wo(int n){ numberTwo=(int)(Math.random()*n)+1;return numberTwo;}public String giveOperator(){ double d=Math.random();if(d>=0.5)operator="+";elseoperator="-";return operator;}public boolean getRight(int answer){ if(operator.equals("+")){ if(answer==numberOne+numberTwo)right=true;elseright=false;}else if(operator.equals("-")){ if(answer==numberOne-numberTwo)right=true;elseright=false;}return right;}}ComputerFrame.javaimport java.awt.*;import java.awt.event.*;public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult;Button getProblem,giveAnwser;Label operatorLabel,message;Teacher teacher;ComputerFrame(String s){ super(s);teacher=new Teacher();setLayout(new FlowLayout());textOne=【代码1】 //创建textOne,其可见字符长是10textTwo=【代码2】 //创建textTwo,其可见字符长是10textResult=【代码3】 //创建textResult,其可见字符长是10operatorLabel=new Label("+");message=new Label("你还没有回答呢");getProblem=new Button("获取题目");giveAnwser=new Button("确认答案");add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label("="));add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100,100,450,100);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0);}});}public void actionPerformed(ActionEvent e){ if(【代码7】) //判断事件源是否是getProblem{ int number1=teacher.giveNumberOne(100);int number2=teacher.giveNumberTwo(100);String operator=teacher.givetOperator();textOne.setText(""+number1);textTwo.setText(""+number2);operatorLabel.setText(operator);message.setText("请回答");textResult.setText(null);}if(【代码8】) //判断事件源是否是giveAnwser{ String answer=textResult.getText();try{int result=Integer.parseInt(answer);if(teacher.getRight(result)==true){ message.setText("你回答正确");}else{ message.setText("你回答错误");}}catch(NumberFormatException ex){ message.setText("请输入数字字符");}}textResult.requestFocus();validate();}}MainClass.javapublic class MainClass{ public static void main(String args[]){ ComputerFrame frame;frame=【代码9】//创建窗口,其标题为:算术测试}}✧实验后的练习:1. 给上述程序增加测试乘、除的功能。
python图形用户界面实验报告本实验主要是介绍Python图形用户界面(GUI)的基本概念和使用方法,包括使用Python 中的Tkinter模块创建GUI应用程序的基本结构、常用控件和事件处理方式。
一、实验目的1.掌握Python图形用户界面(GUI)的基本概念和使用方法。
2.学习使用Python中的Tkinter模块创建GUI应用程序。
3.了解在Tkinter中使用控件和事件处理方式。
二、实验内容1.创建基本的GUI应用程序Python的Tkinter模块提供了一系列GUI控件,如Label、Button、Entry、Canvas、Menu等。
下面我们将介绍如何使用Tkinter创建一个基本的GUI应用程序。
代码如下:```from tkinter import *#创建主窗口root = Tk()#设置窗口标题root.title("我的第一个GUI程序")#设置窗口大小(宽x高)root.geometry('400x300')# 创建一个Label控件label = Label(root, text="欢迎来到Python世界!")# 将Label控件添加到主窗口label.pack()#进入消息循环root.mainloop()```上述代码中,我们首先导入了Tkinter模块,然后创建了一个名为root的主窗口。
接下来,我们设置了窗口的标题和大小,并创建了一个Label(标签)控件,文本为“欢迎来到Python 世界!”并将其添加到主窗口。
最后,我们调用root.mainloop()方法以便程序能够执行GUI循环。
2.GUI控件的使用下面介绍一些常用的Tkinter控件的用法。
其中,控件的属性和方法的详细说明可参考Python 官方文档或其它相关资料。
Label(标签)控件Label控件用来显示文本或图像。
如下是一个Label控件的例子:```label = Label(root, text="Hello, world!")label.pack()```Button(按钮)控件Button控件用来响应用户点击事件。
java图形用户界面实验报告Java图形用户界面实验报告一、引言图形用户界面(Graphical User Interface,简称GUI)是现代软件开发中不可或缺的一部分。
通过GUI,用户能够直观地与程序进行交互,提高了软件的易用性和用户体验。
本实验旨在通过使用Java编程语言,实现一个简单的GUI应用程序,并介绍相关的技术和方法。
二、实验目标本实验的目标是设计并实现一个简单的GUI应用程序,要求具备以下功能:1. 显示一个窗口,并在窗口中心显示一个标签;2. 在窗口中添加一个按钮,并实现按钮的点击事件;3. 当按钮被点击时,标签的文本发生变化。
三、实验过程1. 环境准备在开始实验之前,需要确保已经安装了Java开发环境(JDK)和集成开发环境(IDE),例如Eclipse或IntelliJ IDEA。
2. 创建GUI应用程序首先,创建一个Java项目,并创建一个名为"GUIApplication"的类。
在该类中,引入Java的GUI库,并继承JFrame类,实现一个窗口。
3. 设计窗口布局在窗口的构造方法中,设置窗口的标题、大小和关闭方式。
然后,创建一个JPanel对象,并将其添加到窗口中。
在JPanel中,使用布局管理器(例如FlowLayout或GridBagLayout)来安排组件的位置和大小。
4. 添加标签和按钮在JPanel中,创建一个JLabel对象,并设置其文本和位置。
然后,创建一个JButton对象,并设置其文本和点击事件。
在点击事件中,通过修改JLabel的文本来实现标签内容的变化。
5. 运行程序完成以上步骤后,编译并运行程序。
将会显示一个窗口,其中包含一个标签和一个按钮。
当按钮被点击时,标签的文本会发生变化。
四、实验结果经过以上步骤,成功实现了一个简单的GUI应用程序。
运行程序后,窗口显示如下图所示:(插入程序运行截图)在窗口中心显示了一个标签,标签的文本为"Hello, GUI!"。
实验6 图形用户界面编程6.1 实验目的(1) 掌握图形用户界面的布局设置;(2) 掌握事件驱动编程的特点,如何区分事件源。
(3) 掌握文本框、文本域、标签、按钮等部件的操作方法。
6.2 知识要点6.2.1 awt包简介(1)java.awt包可用于编写Java Application和Applet的图形界面。
(2) AWT组件层次关系见图11-1,所有的GUI标准组件都是AWT包中的根类Component(构件)类的子类。
6.2.2 容器、布局和部件(1)容器Container是Component的子类,具有构件的所有性质,并且能放置其他容器和构件。
●一个容器能容纳若干构件;●调用容器对象的add方法将构件加入到容器中;●窗体(Window)容器在不同的操作平台上显示不同的外观。
●面板(Panel)容器是没有标题和边框的透明容器,不能单独存在,必须加入窗体等其他容器中使用。
(2)各类GUI部件的特点●按钮(Button):单击产生ActionEvent事件●复选框(Checkbox):选择时产生ItemEvent事件●复选框组(CheckboxGroup):只能选一,单选;●下拉列表(Choice):只能选1项;●列表(List):可以选多项;●文本框(TextField):只能显示一行,按回车触发ActionEvent;●文本域(TextArea):显示多行文本。
●画布(Canvas):只能绘图,处理鼠标和键盘事件。
●窗体(Frame):顶级容器,关闭时触发WindowEvent;●面板(Panel): 可进行嵌套布局的容器,面板作为一个部件加入到窗体容器中,面板作为容器又可以放其他面板和部件。
●对话框(Dialog):包括模式和非模式两类,依赖其他窗体。
●文件对话框(FileDialog):用于打开和关闭文件。
●菜单(Menu)、菜单条(MenuBar)和菜单项(MenuItem):只能对Frame创建菜单,菜单条中添加菜单,菜单中可以添加菜单项或子菜单。
实验6 图形用户界面编程实验目的1、学习使用基本图形用户组件;2、学习使用容器JFrame。
实验内容1、编写一个500x400大小的可以关闭的JFrame。
import javax.swing.*;public class A{ public static void main(String[] args){ JFrame frm=new JFrame("My Program");frm.setSize(500, 400);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible(true);}}2、编写并运行一个可关闭的JFrame,其中有一个JTextField、一个JTextArea和一个按钮。
在这个JTextField中输入一行字符串,按下按钮后,这行字符串会被附加到JTextArea中的文本后面。
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class B extends JFrame implements ActionListener{ JTextField tf;JTextArea ta;JButton bt;public B(String title){ super(title);tf=new JTextField(20);ta=new JTextArea(5,20);bt=new JButton("ADD");bt.addActionListener(this);JPanel pl1=new JPanel();JPanel pl2=new JPanel();JPanel pl3=new JPanel();pl1.add(tf);pl2.add(ta);pl3.add(bt);Container ct=getContentPane();ct.add("North", pl1);ct.add("Center", pl2);ct.add("South", pl3);pack();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}public void actionPerformed(ActionEvent e) { String s=tf.getText();ta.append(s);tf.setText("");}public static void main(String[] args){ new B("My Program");}}。
实验6. 图形用户界面设计一、 实验目的1. 掌握图形对象属性的基本操作;2. 掌握菜单及对话框设计、建立控件对象的方法。
二、 实验环境1. 计算机2. matlab7.1三、 实验说明1. 正确操作,认真观察;2. 实验学时:2学时;3. 学会使用help ;4. 保存整理实验结果,提交实验报告。
四、 实验内容1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的颜色,可以改变窗口背景颜色。
2.(选做)采用图形用户界面,从键盘输入参数a 、b 、n 的值,考察参数对极坐标曲线)cos(θρn b a +=的影响。
五、 实验程序及结果1. screen=get(0,'ScreenSize');W=screen(3);H=screen(4);figure('Color','w','Position',[0.2*H,0.2*H,0.5*W,0.3*H],...'Name','菜单设计实验','NumberTitle','off','MenuBar','none'); hplot=uimenu(gcf,'Label','&Plot'); %定义plot 菜单项uimenu(hplot,'Label','Sine Wave','Call',...['t=-pi:pi/20:pi;','h0=plot(t,sin(t));',...'set(hlr,''Enable'',''on'');',...'set(hlg,''Enable'',''on'');',...'set(hlb,''Enable'',''on'');']);uimenu(hplot,'Label','Cosine Wave','Call',...['t=-pi:pi/20:pi;','h0=plot(t,cos(t));',...'set(hlr,''Enable'',''on'');',...'set(hlg,''Enable'',''on'');',...'set(hlb,''Enable'',''on'');']);uimenu(hplot,'Label','&Exit','Call','close(gcf)');hc=uimenu(gcf,'Label','&Color'); %定义Color菜单项hw=uimenu(hc,'Label','&Window Color');uimenu(hw,'Label','&Red','Call','set(gcf,''Color'',''r'');');uimenu(hw,'Label','&Green','Call','set(gcf,''Color'',''g'');');uimenu(hw,'Label','&Blue','Call','set(gcf,''Color'',''b'');');hl=uimenu(hc,'Label','&Line Color','Separator','on');hlr=uimenu(hl,'Label','&Red','Call',...'set(h0,''Color'',''r'');','Enable','off');hlg=uimenu(hl,'Label','&Green','Call',...'set(h0,''Color'',''g'');','Enable','off');hlb=uimenu(hl,'Label','&Blue','Call',...'set(h0,''Color'',''b'');','Enable','off');2. hf=figure('menubar','none','name','图形演示',...'numbertitle','off'); %定义图形窗口set(gcf,'unit','normalized','posi',[0.2,0.3,0.55,0.36]);axes('posi',[0.05,0.15,0.55,0.7]); %定义坐标轴uicontrol(gcf,'style','text','unit','normalized',... %定义静态文本'posi',[0.63,0.85,0.1,0.1],'string','参数 a',...'horizontal','center');uicontrol(gcf,'style','text','unit','normalized',...'posi',[0.63,0.65,0.1,0.1],'string','参数 b',...'horizontal','center');uicontrol(gcf,'style','text','unit','normalized',...'posi',[0.63,0.45,0.1,0.1],'string','参数 n',...'horizontal','center');ha=uicontrol(gcf,'style','edit','back','w',... %定义编辑框'unit','normalized', 'posi',[0.80,0.85,0.15,0.1]);hb=uicontrol(gcf,'style','edit','back','w',...'unit','normalized','posi',[0.80,0.65,0.15,0.1]);hn=uicontrol(gcf,'style','edit','back','w',...'unit','normalized','posi',[0.80,0.45,0.15,0.1]);uicontrol(gcf,'style','push','unit','normalized',... %定义按钮'posi',[0.61,0.15,0.15,0.15],'string','绘图','call',COMM); uicontrol(gcf,'style','push','unit','normalized',...'posi',[0.80,0.15,0.15,0.15],'string','关闭','call','close(gcf)');COMM=['a=str2num(get(ha,''string''));',... %绘图'b=str2num(get(hb,''string''));',...'n=str2num(get(hn,''string''));',...'theta=0:0.01:2*pi;',...'rho=a*cos(b+n*theta);',...'polar(theta,rho);'];改变参数a,如图所示改变参数b,如图所示改变参数n,如图所示。
实验六MATLAB图形用户界面设计(3学时)1 实验的目的及意义:(1)熟悉MATLAB图形用户界面开发环境。
(2)掌握MATLAB中图形用户界面程序设计方法。
2 实验步骤:上机调试①设计如下图所示的简单四则运算计算器。
1) 在GUI设计窗口中放置16个Pushbutton控件,将其Tag和String属性分别设置为:Pushbutton1,1Pushbutton2,2……Pushbutton9,9Pushbutton10,0Pushbutton_CLR,CLRPushbutton_EQU,=Pushbutton_ADD,+Pushbutton_SUB,-Pushbutton_MUL,×Pushbutton_DIV,÷2) 在GUI设计窗口中放置2个Statictext控件,将其Tag和String属性分别设置为:Text1,计算器Text_ANS,0再将Text_ANS控件的Backgroundcolor属性设置为白色;HorizontalAlignment属性设置为Left(水平左对齐)。
3) 设计Callback函数:(提示)某一数字按键按下时,要将该按键的String属性读出来并连接到Text_ANS的String属性之后。
(使用字符串连接函数Strcat)function pushbutton1_Callback(hObject, eventdata, handles) str=get(handles.pushbutton1,'string');str=strcat(get(handles.text_ANS,'string'),str);set(handles.text_ANS,'string',str);function pushbutton2_Callback(hObject, eventdata, handles) str=get(handles.pushbutton2,'string');str=strcat(get(handles.text_ANS,'string'),str);set(handles.text_ANS,'string',str);....function pushbutton9_Callback(hObject, eventdata, handles) str=get(handles.pushbutton9,'string');str=strcat(get(handles.text_ANS,'string'),str);set(handles.text_ANS,'string',str);function pushbutton10_Callback(hObject, eventdata, handles) str=get(handles.pushbutton10,'string');str=strcat(get(handles.text_ANS,'string'),str);set(handles.text_ANS,'string',str);CLR按键按下时,将Text_ANS的String属性设为空。
C语言实现图形用户界面设计引言在计算机编程领域,图形用户界面(Graphical User Interface, GUI)设计是一项重要而复杂的工作。
本文将介绍如何使用C语言实现图形用户界面设计,探讨相关的技术和方法。
1. GUI的基本概念GUI是一种人机交互方式,通过图形元素和控件来呈现和操作数据。
它相比于传统的命令行界面更加直观,用户友好,被广泛应用于各种软件和操作系统。
2. C语言中的GUI库在C语言中,实现GUI设计可以借助一些开源的GUI库。
其中最常用的是GTK+、Qt和WinAPI。
2.1 GTK+GTK+ 是一种跨平台的GUI开发工具包,它基于C语言,提供了丰富的图形控件和功能。
GTK+的使用需要掌握基本的C语言编程技巧,以及相关的GTK+库函数。
2.2 QtQt是一套面向对象的跨平台开发工具集。
虽然Qt主要使用C++编写,但也提供了C语言的接口,方便在C语言项目中实现GUI界面。
2.3 WinAPIWinAPI是Windows操作系统提供的一组API函数,可以用于创建和管理GUI窗口。
通过调用这些API函数,C语言程序可以实现Windows平台下的GUI界面。
3. 实例应用:使用GTK+创建GUI界面本节以使用GTK+库为例,演示如何在C语言中创建一个简单的GUI界面。
3.1 环境准备首先,在你的开发环境中安装GTK+库。
确保你的编译器和开发工具支持GTK+。
3.2 GUI界面构建在C语言中,使用GTK+创建GUI界面需要借助于GTK+库提供的函数和控件。
你可以创建主窗口、标签、按钮、输入框等各种图形控件,并通过事件处理函数响应用户的操作。
3.3 代码示例下面是一个简单的使用GTK+库创建GUI界面的示例代码: ```c#include <gtk/gtk.h>int main(int argc, char* argv[]) {GtkWidget *window;GtkWidget *button;// 初始化GTK+gtk_init(&argc, &argv);// 创建主窗口window = gtk_window_new(GTK_WINDOW_TOPLEVEL);g_signal_connect(window, "destroy",G_CALLBACK(gtk_main_quit), NULL);// 创建按钮button = gtk_button_new_with_label("Hello World");g_signal_connect(button, "clicked",G_CALLBACK(gtk_main_quit), NULL);// 将按钮添加到主窗口gtk_container_add(GTK_CONTAINER(window), button);// 显示所有控件gtk_widget_show_all(window);// 主循环gtk_main();return 0;}```4. 注意事项和进阶技巧- 学习GUI设计需要掌握C语言的基本语法和相关的GUI库的使用方法。
实验6 图形用户界面和Applet编程实验一、实验目的:1.掌握Java中图形用户界面的编程2.掌握布局管理器和事件的响应方法。
3.掌握Applet多媒体开发方法二、实验环境(硬/软件要求):通过局域网互联,安装Windows 2000/XP操作系统环境的JDK 1.5.0(或以上版本),Jcreater Pro或JBuilder 9、eclipse。
三、实验内容:编写简单的图形用户界面并进行事件处理;编写程序熟悉常见组件的使用;编写程序进行图形化显示;编写程序进行Applet多媒体开发。
四、实验主要步骤:1 编写一个算数测试小软件。
点击获取题目进行随机出题,点击确认答案判断答题正确与否。
一次可出多题,可以判断答案对错。
2 编写一个班级推选优秀生的软件,可列出参与推优的学生名单,能够显示当前投票人数以及每名候选者得票数,如果同时能够图形化显示得票数更佳。
3编写一个程序,画出一辆小车图案。
思考是否能让小车平行移动?如何移动?4编写一个Applet程序,在网页中同时显示自己的生活照和播放一段音乐。
五、实验报告形式(纸质/电子):1.纸质(实验报告),可打印。
试验结果截图打印出来,附在试验报告后2.电子(程序源代码、运行结果)3.回答下述问题有几种窗体布局管理器,各有何不同?六、评分标准:1.能否自如地设计完成要求验证的内容。
异常的处理是否恰当。
2.程序设计的风格,是否规范。
3.各个程序的源代码,要求对代码行进行适当地注释说明;4.上机实验的态度是否认真,实验报告书写是否规范完整。
1、import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import bel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import javax.swing.*;import javax.swing.GroupLayout.Alignment;class randomtimu{double x1;double x2;char yunsuan;final char[] Yun=new char[]{'+','-','*','/'};double result;String errorString="";public randomtimu(){x1=Math.random()*100;x2=Math.random()*100;yunsuan=Yun[(int)(Math.random()*4)];switch (yunsuan){case'+':result=x1+x2;break;case'-':result=x1-x2;break;case'*':result=x1*x2;break;case'/':if(x2==0){errorString="error";}else {result=x1/x2;}break;default:break;}}}public class test6 extends JFrame{private JPanel contentPane;JTextField jTextField=new JTextField(10);JTextField jTextField3=new JTextField(10);JTextField jTextField4=new JTextField(10);JLabel jLabel=new JLabel("+",JLabel.CENTER);JLabel jLabel2=new JLabel("=",JLabel.CENTER);JLabel jLabel3=new JLabel("");double result=0;public static void main(String[] args){new test6().setVisible(true);}/*** Create the Frame.*/public test6(){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container container=getContentPane();setBounds(500,100,600,150);setLayout(new BorderLayout());JPanel jPanel=new JPanel();jPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));JPanel jPanel2=new JPanel();JButton jButton2=new JButton("确认答案");jPanel2.add(jButton2);JButton jButton=new JButton("获取题目");jPanel.add(jButton);jPanel.add(jTextField3);jTextField3.setSize(20,10);jPanel.add(jLabel);jLabel2.setFont(new Font("黑体", Font.BOLD, 18));jPanel.add(jTextField);jPanel.add(jLabel2);jLabel.setFont(new Font("黑体", Font.BOLD, 18));jPanel.add(jTextField4);container.add(jPanel,BorderLayout.NORTH);container.add(jPanel2);jPanel2.add(jLabel3);jButton.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){randomtimu randomtimu1=new randomtimu();jTextField4.setText("");jLabel3.setText("");jTextField3.setText(String.format("%.2f",randomtimu1.x1));jTextField.setText(String.format("%.2f",randomtimu1.x2));jLabel.setText(randomtimu1.yunsuan+"");if(randomtimu1.errorString.equals("error")){JOptionPane.showMessageDialog(null, "除数不能为零");}else {result=randomtimu1.result;}}});jButton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){if(jTextField4.getText().equals("")||jTextField4.getText()==null) {JOptionPane.showMessageDialog(null, "答案不能为空");}else {doublestring=Double.parseDouble(jTextField4.getText());String answer="正确结果是"+String.format("%.2f",result);if(Math.abs(string-result)<0.01){answer="答案正确"+answer;}else {answer="答案错误"+answer;}jLabel3.setText(answer);}}});}}2、运动的迷你小车外加图像放大功能import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.WindowConstants;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;public class drawcar extends JFrame{ Graphics g;Container container;JSlider jsliter11=new JSlider();ImageIcon icon=newImageIcon("http://10.102.14.234:8080/Classic_Car_Icons_005.png"); //我笔记本Tomcat服务器的照片;Image img=icon.getImage();JButton jButton1=new JButton("开始");JButton jButton2=new JButton("暂停");drawpicture dra;int x1=0;int y1=0;Boolean flag=true;public drawcar(){picture();}public void picture(){jsliter11.setMaximum(100);jsliter11.setMinimum(1);jsliter11.setValue(5);dra=new drawpicture();jsliter11.addChangeListener(newjavax.swing.event.ChangeListener(){public voidstateChanged(javax.swing.event.ChangeEvent e){dra.repaint();}});setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setBounds(500,50,500,500);container=getContentPane();setTitle("迷你小车(黄开浪)");container.add(dra,BorderLayout.CENTER);container.add(jsliter11,BorderLayout.NORTH);JPanel jpanel2=new JPanel();jpanel2.setLayout(new FlowLayout(10, 10,10));jpanel2.add(jButton1);jpanel2.add(jButton2);container.add(jpanel2,BorderLayout.SOUTH);jButton1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){flag=true;Thread thread=new Thread(new Runnable(){@Overridepublic void run(){while(flag){if(x1<500){x1=x1+20;}else {x1=0;}try{Thread.sleep(100);}catch (InterruptedException e){// TODO自动生成的 catch 块e.printStackTrace();}dra.repaint();}}});thread.start();}});jButton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){flag=false;}});}class drawpicture extends Canvas{public void paint(Graphics g){super.paint(g);Graphics2D gd=(Graphics2D) g;int newx=0;int newy=0;float value=jsliter11.getValue();newx=(int)(value*img.getWidth(this)/100);newy=(int)(value*img.getHeight(this)/100);//gd.rotate(Math.toRadians(5));gd.drawImage(img,x1,y1,newx,newy,this);}}public static void main(String args[]){new drawcar().setVisible(true);}}3、import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.GridLayout;import java.awt.Paint;import java.awt.Stroke;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTable;import javax.swing.WindowConstants;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import javax.swing.table.TableColumnModel;import javax.swing.text.StyledEditorKit.BoldAction;public class tuiyou extends JFrame{Graphics g;JButton jButton1=new JButton("增加选手");JButton jButton3=new JButton("删除选手");JButton jButton2=new JButton("画图");drawpicture dra;DefaultTableModel defaultModel = null;JTable jTable1;int x;String col[]={"人数","竞选一号","竞选二号","竞选三号"};String row[][]={{"人数","竞选一号","竞选二号","竞选三号"},{"票数","100","500","700"}};public void main(){new tuiyou();}/*2 编写一个班级推选优秀生的软件,* 可列出参与推优的学生名单,能够显示当前投票人数以及每名候选者得票数, * 如果同时能够图形化显示得票数更佳。
实验6. 图形界面设计6.1思考题1 一个部件会在水平方向会改变大小,但垂直方向不变,应放到什么位置?C A.BorderLayout 布局的或位置B.FlowLyout布局的第一个部件(水平垂直都不发生变化)C. BorderLayout布局的East或West位置D. BorderLayout布局的Center位置E.GridLayout布局中(网格布局,水平垂直都会发生改变)2 以下AWT类中哪些实现部件的布局?ABEyoutManagerB.GridBagLayoutC.ActionListenerD.WindowAdapterE. FlowLayout3. 设有以下程序:Cimport java.awt.*;public class FlowAp extends Frame{public static void main(String argv[]){FlowAp fa=new FlowAp( );fa.setSize(400,300);fa.setVisible(true);}FlowAp( ){add(new Button(〝One〞));add(new Button(〝Two〞));add(new Button(〝Three〞));add(new Button(〝Four〞));}}以下哪个描绘了应用的外观?A.窗体每边有4个标记为One到Four的按钮B.从顶到底安排有4个标记为One到Four的按钮在正中央C.一个很大的标记为Four的按钮在正中央D.运行时指示没有设置布局管理器的错误4如何设置当前的布局管理器?BA.使用setLayout方法B.一旦创建了部件,不能改变部件的布局管理器C.使用setLayoutManager方法D.使用updateLayout方法5以下代码运行后外观为?Aimport java.awt.*;public class CompLay extends Frame{public static void main(String argv[]){CompLay c1=new CompLay( );}CompLay( ){Panel p= new Panel( );p.setBackground(Color.pink);p.add(new Button(〝One〞));p.add(new Button(〝Two〞));p.add(new Button(〝Three〞));add (〝South〞.p);setLayout(new FlowLayout());setSize(300,300);setVisible(true);}}A.按钮按从左到右的次序出现在窗体的底部B.按钮按从左到右的次序出现在窗体的顶部C.按钮将不显示D.只有一个按钮显示占满整个窗体6 以下程序调试结果为?B//演示事件处理import java.awt.*;import java.awt.event.*;public class MyWc extends Frame implements WindowListener{ public static void main(String argv[]){MyWc mwc=new MyWc( );}public void windowClosing(WindowEvent we){System.exit( 0 );}public MyWc(){setSize(300,300);setVisible(true);}}A.编译错误B.创建的窗体会关闭掉C.运行无输出D.编译错误,import语句不能有注释语句7 以下叙述正确的有?A.如果一个部件注册多个监听者,事件将只会被最后一个监听者处理。
实验6. 图形用户界面设计一、 实验目的1. 掌握图形对象属性的基本操作;2. 掌握菜单及对话框设计、建立控件对象的方法。
二、 实验环境1. 计算机;2. Matlab 软件。
三、 实验说明1. 正确操作,认真观察;2. 实验学时:2学时;3. 学会使用help ;4. 保存整理实验结果,提交实验报告。
四、 实验内容1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的颜色、线型;可以改变窗口背景颜色。
2.(选做)采用图形用户界面,从键盘输入参数a 、b 、n 的值,考察参数对极坐标曲线)cos(θρn b a +=的影响。
五、 实验程序及结果1.程序:screen=get(0,'ScreenSize');W=screen(3);H=screen(3);figure('Color','w','Position',[0.2*H,0.2*H,0.5*W,0.3*H],...'Name', '菜单设计实验' ,'NumberTitle','off','MenuBar','none'); hplot=uimenu(gcf,'Label','&Plot'); %定义plot 菜单项uimenu(hplot,'Label','Sine Wave','Call',...['t=-pi:pi/20:pi;','h0=plot(t,sin(t));','set(h0,''UIContextMenu'',ht);',...'set(hlr,''Enable'',''on'');','set(hlg,''Enable'',''on'');','set(hlb,''Enable'',''on'');',... 'set(hsx,''Enable'',''on'');','set(hss,''Enable'',''on'');']); uimenu(hplot,'Label','Cosine Wave','Call',...['t=-pi:pi/20:pi;','h0=plot(t,cos(t));','set(h0,''UIContextMenu'',ht);',...'set(hlr,''Enable'',''on'');','set(hlg,''Enable'',''on'');', 'set(hlb,''Enable'',''on'');',...'set(hsx,''Enable'',''on'');','set(hss,''Enable'',''on'');']); uimenu(hplot,'Label','&Exit','Call','close(gcf)');ho=uimenu(gcf,'Label','&Option'); %定义Option菜单项hw=uimenu(ho,'Label','&Window Color');uimenu(hw,'Label','&Red','Call','set(gcf,''Color'',''r'');'); uimenu(hw,'Label','&Green','Call','set(gcf,''Color'',''g'');'); uimenu(hw,'Label','&Blue','Call','set(gcf,''Color'',''b'');'); uimenu(hw,'Label','&White','Call','set(gcf,''Color'',''w'');');hl=uimenu(ho,'Label','&Line Color','Separator','on');hlr=uimenu(hl,'Label','&Red','Call',...'set(h0,''Color'',''r'');','Enable','off');hlg=uimenu(hl,'Label','&Green','Call',...'set(h0,''Color'',''g'');','Enable','off');hlb=uimenu(hl,'Label','&Blue','Call',...'set(h0,''Color'',''b'');','Enable','off');hlw=uimenu(hl,'Label','&White','Call',...'set(h0,''Color'',''w'');','Enable','off');ht=uicontextmenu;s=uimenu(ht,'Label','Linestyle');hs=uimenu(ho,'Label','&Linestyle','Separator','on');hsx=uimenu(hs,'Label','&双划线','Call',...'set(h0,''Linestyle'','':'');','Enable','off');hss=uimenu(hs,'Label','&实线 ','Call',...'set(h0,''Linestyle'',''-'');','Enable','off');实验结果:。
如何编写一个基本的图形用户界面编写一个基本的图形用户界面通常需要借助图形界面库或框架,并按特定的设计和结构组织代码。
本文将简要介绍如何使用Python和Tkinter库编写一个基本的图形用户界面,以供参考。
首先,确保已安装Python并正确配置环境。
然后,打开文本编辑器,创建一个新的Python源代码文件。
第一步是导入Tkinter库:```pythonfrom tkinter import *```然后,为用户界面创建一个主窗口:```pythonroot = Tk()```接下来,可以为窗口设置标题、大小和背景颜色:```pythonroot.title("基本图形用户界面")root.geometry("400x300")root.configure(bg="white")```然后,可以开始添加各种用户界面组件,如标签、按钮和输入框。
例如,添加一个标签来显示一些文本:```pythonlabel = Label(root, text="欢迎使用基本图形用户界面",bg="white")label.pack()```然后,添加一个按钮:```pythonbutton = Button(root, text="点击我!", bg="blue")button.pack()```接下来,可以为按钮添加一个事件处理程序,以便在用户点击按钮时触发某些操作。
例如,创建一个函数来处理按钮的点击事件:```pythondef handle_button_click():label.configure(text="按钮已点击!")```然后,将该函数与按钮的`command`参数关联起来:```pythonbutton.configure(command=handle_button_click)```接下来,可以添加一个输入框,以便用户能够输入文本:```pythonentry = Entry(root)entry.pack()```然后,可以创建一个函数来获取输入框内的文本,并在按钮点击时显示在标签中:```pythondef handle_button_click():text = entry.get()label.configure(text=text)```最后,将代码放入一个无限循环中,以便保持窗口的显示和响应用户操作:```pythonroot.mainloop()```以上是一个基本的图形用户界面的示例。
实验名称:基于Java的图形用户界面设计一、实验目的1. 熟悉Java图形用户界面设计的基本概念和常用组件。
2. 掌握Swing库的使用,能够设计简单的图形用户界面。
3. 培养编程实践能力,提高问题解决能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse IDE for Java Developers3. 编程语言:Java4. 开发库:Swing库三、实验内容1. 创建一个简单的图形用户界面,包括窗口、按钮、标签、文本框等组件。
2. 实现按钮点击事件,输出信息到控制台。
3. 设计一个带有滚动条的面板,展示大量数据。
4. 使用布局管理器(如FlowLayout、BorderLayout、GridLayout等)对界面进行布局。
四、实验步骤1. 创建一个名为“GUIProject”的Java项目,在Eclipse中导入Swing库。
2. 创建一个名为“MainFrame”的类,继承自JFrame类,作为主窗口。
3. 在“MainFrame”类中,添加以下代码:```javaimport javax.swing.;import java.awt.;public class MainFrame extends JFrame {public MainFrame() {// 设置窗口标题setTitle("图形用户界面设计");// 设置窗口大小setSize(500, 400);// 设置关闭操作setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置布局管理器setLayout(new BorderLayout());// 创建按钮JButton button = new JButton("点击我");// 添加按钮到窗口add(button, BorderLayout.CENTER);// 添加事件监听器button.addActionListener(e -> {System.out.println("按钮被点击了!");});}public static void main(String[] args) {// 创建窗口实例MainFrame frame = new MainFrame();// 显示窗口frame.setVisible(true);}}```4. 修改“MainFrame”类,添加滚动条和标签:```javaimport javax.swing.;import java.awt.;public class MainFrame extends JFrame {public MainFrame() {// ...(省略其他代码)// 创建面板JPanel panel = new JPanel();// 设置布局管理器panel.setLayout(new GridLayout(0, 1));// 创建标签JLabel label = new JLabel("这是一个标签");// 添加标签到面板panel.add(label);// 创建滚动条JScrollPane scrollPane = new JScrollPane(panel); // 添加滚动条到窗口add(scrollPane, BorderLayout.CENTER);}// ...(省略其他代码)}```5. 运行程序,观察效果。
实验六图形用户界面【开发语言及实现平台或实验环境】Windows2000或XP,JDK1.6【实验目的】1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,2.了解如何使用布局管理器对组件进行管理,以及如何使用J ava的事件处理机制。
【实验要求】1. 掌握在App let 容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。
2. 理解Java的事件处理机制,掌握为不同组件编写事件处理程序的方法。
3. 掌握编写独立运行的窗口界面的方法。
4. 了解Java Swing组件的使用方法。
5. 了解对话框的使用方法。
【实验内容】一.创建图形用户界面图形用户界面(Graphi c User Interf ace ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。
组件(Compon ent)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。
组件一般作为一个对象放置在容器(C ontai ner)内,容器是能容纳和排列组件的对象,如Apple t、Panel(面板)、Frame(窗口)等。
通过容器的a d d 方法把组件加入到容器中。
1.在Apple t 中添加标签、按钮并使用网格布局(1)程序功能:在Apple t 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
(2)编写LX5_1.java 程序文件,源代码如下。
import java.awt.*;import java.applet.Applet;public classLX5_1extend s Applet {Labell1;Button b1, b2, b3, b4, b5, b6;public void init() {setLay out(new GridLa yout(3,3)); // 设置网格布局(3 行3 列共9 个网格)l1=new Label("标签1");b1 = new Button("按钮1");b2 = new Button("按钮2");b3 = new Button("按钮3");b4 = new Button("按钮4");add(l1);add(b1);add(b2);add(b3);add(new Label());add(b4);add(new Button("按钮5"));add( new Button("按钮6"));add(new Label("标签2"));}}(3)编译程序LX5_1.java。
实验6. 图形用户界面设计
一、 实验目的
1. 掌握图形对象属性的基本操作;
2. 掌握菜单及对话框设计、建立控件对象的方法。
二、 实验环境
1. 计算机;
2. Matlab 软件。
三、 实验说明
1. 正确操作,认真观察;
2. 实验学时:2学时;
3. 学会使用help ;
4. 保存整理实验结果,提交实验报告。
四、 实验内容
1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的颜色、线型;可以改变窗口背景颜色。
2.(选做)采用图形用户界面,从键盘输入参数a 、b 、n 的值,考察参数对极坐标曲线)cos(θρn b a +=的影响。
五、 实验程序及结果
1.程序:screen=get(0,'ScreenSize');
W=screen(3);H=screen(3);
figure('Color','w','Position',[*H,*H,*W,*H],...
'Name', '菜单设计实验' ,'NumberTitle','off','MenuBar','none'); hplot=uimenu(gcf,'Label','&Plot'); %定义plot 菜单项
uimenu(hplot,'Label','Sine Wave','Call',...
['t=-pi:pi/20:pi;','h0=plot(t,sin(t));', 'set(h0,''UIContextMenu'',ht);',... 'set(hlr,''Enable'',''on'');',
'set(hlg,''Enable'',''on'');','set(hlb,''Enable'',''on'');',...
'set(hsx,''Enable'',''on'');','set(hss,''Enable'',''on'');']);
uimenu(hplot,'Label','Cosine Wave','Call',...
['t=-pi:pi/20:pi;','h0=plot(t,cos(t));', 'set(h0,''UIContextMenu'',ht);',...
'set(hlr,''Enable'',''on'');','set(hlg,''Enable'',''on'');',
'set(hlb,''Enable'',''on'');',...
'set(hsx,''Enable'',''on'');','set(hss,''Enable'',''on'');']);
uimenu(hplot,'Label','&Exit','Call','close(gcf)');
ho=uimenu(gcf,'Label','&Option'); %定义Option菜单项
hw=uimenu(ho,'Label','&Window Color');
uimenu(hw,'Label','&Red','Call','set(gcf,''Color'',''r'');');
uimenu(hw,'Label','&Green','Call','set(gcf,''Color'',''g'');');
uimenu(hw,'Label','&Blue','Call','set(gcf,''Color'',''b'');');
uimenu(hw,'Label','&White','Call','set(gcf,''Color'',''w'');');
hl=uimenu(ho,'Label','&Line Color','Separator','on');
hlr=uimenu(hl,'Label','&Red','Call',...
'set(h0,''Color'',''r'');','Enable','off');
hlg=uimenu(hl,'Label','&Green','Call',...
'set(h0,''Color'',''g'');','Enable','off');
hlb=uimenu(hl,'Label','&Blue','Call',...
'set(h0,''Color'',''b'');','Enable','off');
hlw=uimenu(hl,'Label','&White','Call',...
'set(h0,''Color'',''w'');','Enable','off');
ht=uicontextmenu;
s=uimenu(ht,'Label','Linestyle');
hs=uimenu(ho,'Label','&Linestyle','Separator','on');
hsx=uimenu(hs,'Label','&双划线','Call',...
'set(h0,''Linestyle'','':'');','Enable','off'); hss=uimenu(hs,'Label','&实线 ','Call',...
'set(h0,''Linestyle'',''-'');','Enable','off');实验结果:。