java实验报告 图形用户界面设计 GUI

时间:2024.4.20

实验目的:

1、熟悉GUI设计步骤

2、掌握GUI各个组件的用法

实验要求:

1.使用BorderLayoutJFrame布局分为左右两块;左边使用GridLayout,半酣3个按钮;;右边JLabel里显示一幅幅画,按钮空JLabel是否显示滚动条。

源代码如下:

import javax.swing.*;

import java.awt.*;

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();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

class CFrame extends JFrame{

public CFrame(String title){

setTitle(title);

setBackground(Color.BLUE);

}

}

class leftPanel extends JPanel{

public leftPanel(){

JButton bt1=new JButton("view");

JButton bt2=new JButton("clear");

JButton bt3=new JButton("no idea");

setLayout(new GridLayout(2,2,100,100));

add(bt1);

add(bt2);

add(bt3);

bt1.addActionListener(this);

bt2.addActionListener(this);

bt3.addActionListener(this);

}

}

class rightPanel extends JPanel{

public rightPanel(){

JLabel label=new JLabel(new ImageIcon("image.jpg"));

label.setToolTipText("西瓜帽");

JScrollPane scr=new JScrollPane(label,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

add(label);

add(scr);

}

}

运行结果如图所示

2. 练习使用对话框。包括一个JLabel和两个JButton,按任何一个JButton都会产生一个输入对话框,按确定后将输入内容在JLabel中显示出来

源代码如下:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class dTest{

public static void main(String args[]){

Form form=new Form();

form.setSize(300,200);

form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

form.setVisible(true);

}

}

class Form extends JFrame implements ActionListener{

private Dial dia;

JLabel lab=new JLabel("请输入");

public Form(){

JButton btn1=new JButton("Yes");

JButton btn2=new JButton("No");

getContentPane().setLayout(new GridLayout(3,1));

add(lab);

add(btn1);

add(btn2);

setTitle("inputprac");

btn1.addActionListener(this);

btn2.addActionListener(this);

}

public void actionPerformed(ActionEvent event){

if(event.getActionCommand()=="输入"){

dia=new Dial(this,"请输入内容",true);

dia.setVisible(true);

lab.setText(dia.getSt());

}

else{

System.exit(0);

}

}

}

class Dial extends JDialog implements  ActionListener{

private JTextField text=new JTextField("change");

private JButton btn1=new JButton("确定");

private JPanel panel=new JPanel();

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();

}

}

运行结果如图所示

3.联系使用JTable。包括姓名、学号、语文成绩、数学成绩、总分共5

源代码如下:

import java.awt.*;

import javax.swing.*;

public class table{

public static void main(String args[]){

JFrame form=new JFrame("Table试验");

final Object[] row={"姓名","学号","语文成绩","数学成绩","总分"};

Object[][] rowData = {

{"张三", "01", "81", "80", "160"},

{"李四", "02", "93", "72", "165"},

{"王麻子", "03", "99", "97", "196"},

};

JTable tb=new JTable(rowData,row);

JScrollPane pane= new JScrollPane (tb);

form.getContentPane().add(tb);

form.setVisible(true);

form.pack();

}

}

运行结果如图所示

4.编写Application程序,构造一个GUI,实现对两个数的加、减、乘、除功能。应含有3JTextField1JButton

源代码如下:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

class Form extends JFrame implements ActionListener{

JTextField a=new JTextField(6);

JTextField b=new JTextField(6);

JTextField c=new JTextField("+",1);

JButton btn=new JButton("计算");

JLabel lab=new JLabel("=");

public Form(){

Container ct=getContentPane();

ct.add(a);

ct.add(c);

ct.add(b);

ct.add(lab);

ct.add(btn);

ct.setLayout(new FlowLayout());

btn.addActionListener(this);

pack();

setVisible(true);

}

public void actionPerformed(ActionEvent event){

int m = Integer.parseInt(a.getText());

int n = Integer.parseInt(b.getText());

String f=c.getText().trim();

if(f=="+"){

int r=m+n;

lab.setText("="+r);

}

else if(f=="-"){

int r=m-n;

lab.setText("="+r);

}

else if(f=="*"||f=="×"){

int r=m*n;

lab.setText("="+r);

}

else if(f=="/"||f=="÷"){

int r=m/n;

lab.setText("="+r);

}

}

}

public class counter{  

public static void main(String[] args) {

Form form=new Form();

form.setVisible(true);

}

}

实验小结:

在使用GUI图形用户界面设计的过程中,根据所需的控件加以编程即可,好处是无需太多算法,而且以上几个不同的窗体功能实现基本类似,在本次实验中通过编写窗体控件,熟悉了GUI的设计和用法。


第二篇:Java基础实验报告-图形用户界面设计


南京工程学院

实 验 报 告

课程名称 JAVA基础 实验项目名称 图形用户界面设计

实验学生班级 实验学生姓名 学 号 同组学生姓名 实验时间 实验地点

实验成绩评定 指导教师签字 年 月 日

一、实验目的和要求

1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。

2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。

3.熟悉在组件上绘图的方法。

二、实验题目

用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。

三、实验方法与步骤(需求分析、算法设计思路、流程图等)

算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:

Java基础实验报告图形用户界面设计

因此,我设计了以下核心算法

public void actionPerformed(ActionEvent e) {

if(e.getSource()==button_b)

{

double

wage=Double.parseDouble((String)text_wage.getText());

double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500)

tax=(wage-3500)*0.25-1005; if(wage>38500&&wage<=58500) tax=(wage-3500)*0.3-2755; if(wage>58500&&wage<=83500) tax=(wage-3500)*0.35-5505; if(wage>83500) tax=(wage-3500)*0.45-13505; text.setText(""+tax);

}

}

以上算法是根据税率表设计的,具体为:

我国规定个人收入在3500元起征个人所得税,分了多个阶段: 3500以下:不收税

3500以上到5000以下部分:3%

5000以上到8000以下部分:10%

8000以上到以下部分:20%

125000以上到385000以下部分:25%

385000以上到585000以下部分:30%

585000以上到835000以下部分:35%

83500以上:45%

首先算出每个阶段的速扣数,然后用此公式:

应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数。 然后就得出以上算法。

四、实验原始纪录(源程序、数据结构等)

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class WageJFrame extends JFrame implements ActionListener

{

private JTable table;//表格 private Button button_b;//按钮 private Object datas[][];//数据

String titles[];//标题(为空)

private JTextField text;//个人所得税

private JTextField text_wage;//输入的工资

this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);/public WageJFrame() { super("计算个人所得税"); Dimension dim=getToolkit().getScreenSize();//获得屏幕分辨率 /设置窗口大小

this.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口 this.datas=new Object[8][4];//设置表格长宽 JLabel label=new JLabel("工资");//“工资”标签 text_wage=new JTextField("5000",7);//默认工资 JPanel jpane1=new JPanel();//面板 jpane1.add(label);//把标签加入面板中 jpane1.add(text_wage);//把输入工资的文本框加入面板中 this.getContentPane().add(jpane1,"North");//把上述面板插入主面板中

for(int i=0;i<=7;i++)

{

datas[i][0]=i+1+"";

}

titles=new String[4];//设置标题

titles[0]="级数";

titles[1]="含级数距";

titles[2]="税率";

titles[3]="速扣数";

datas[0][1]="不超过3500元";

datas[1][1]="超过3500,不超过5000元";

datas[2][1]="超过5000,不超过8000元";

datas[3][1]="超过8000,不超过12500元";

datas[4][1]="超过12500,不超过38500元";

datas[5][1]="超过38500,不超过58500元";

datas[6][1]="超过58500,不超过83500元";

datas[7][1]="超过83500";

datas[0][2]="0%";

datas[1][2]="3%";

datas[2][2]="10%";

datas[3][2]="20%";

datas[4][2]="25%";

datas[5][2]="30%";

datas[6][2]="35%";

datas[7][2]="45%";

datas[0][3]="0";

datas[1][3]="0";

datas[2][3]="105";

datas[3][3]="555";

datas[4][3]="1005";

datas[5][3]="2755";

datas[6][3]="5505";

datas[7][3]="13505";

table=new JTable(datas,titles);//创建一个表格 this.getContentPane().add(new JScrollPane(table),"Center");

button_b=new Button("计算个人所得税");

} this.setVisible(true);//显示界面 button_b.addActionListener(this);//单击按钮响应事件 JLabel label1=new JLabel("个人所得税");//创建个人所得税标签 text=new JTextField(" ",7);//设置输出框 text.setEditable(false);//输出文本框不可编辑 JPanel jpane2=new JPanel();//创建一个面板 jpane2.add(button_b);//把按钮加到面板中 jpane2.add(label1);//把标签加入面板中(个人所得税) jpane2.add(text);//把输出文本框加入面板 this.getContentPane().add(jpane2,"South");//把面板2加入主面

public void actionPerformed(ActionEvent e)//响应单击事件 {

if(e.getSource()==button_b)

{

double

wage=Double.parseDouble((String)text_wage.getText());

double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500)

tax=(wage-3500)*0.25-1005; if(wage>38500&&wage<=58500) tax=(wage-3500)*0.3-2755; if(wage>59500&&wage<=83500) tax=(wage-3500)*0.35-5505; if(wage>83500) tax=(wage-3500)*0.45-13505; text.setText(""+tax);

}

}

}

public static void main(String args[]) { } new WageJFrame();//创建一个WageJFrame对象

五、实验结果及分析(计算过程与结果、数据曲线、图表等)

1初始界

Java基础实验报告图形用户界面设计

面2 工资为3500时的个人所得税

Java基础实验报告图形用户界面设计

3工资为28850时的个人所得税

Java基础实验报告图形用户界面设计

4工资为85000时的个人所得税

Java基础实验报告图形用户界面设计

六、实验总结与思考

通过这次JAVA实验,我清晰地感受到了JAVA语言的魅力,作为现在使用很广的一种编程语言,的确有其补课替代的作用。

从这次实验上看,我对JAVA变成有我资深的只是局限性,毕竟这么厚一本书,在这么点时间内还是很难读透搞懂的,真正等到自己亲自去实验时,却发现问题多多,有的人写代码程序,实现一个功能用了几十行,而有的人却用简短几行就能搞定,开始让我觉得不可思议,但后面慢慢的编程中,我真四体会到了,所以我觉得这方面很重要。

我觉得JAVA对未来走向社会很重要,而这个大作业的编写,正好锻炼了我对JAVA的编程能力。对JAVA有了更深的认识,知识不是瞬间获得的,是靠平时一点一滴的积累和吸收每次的经验得来的。

教师评语:

更多相关推荐:
用户界面设计报告

用户界面设计报告封面目录引言101文档介绍102项目背景103读者对象104参考文献205术语与缩写解释206界面设计规范207界面关系和工作流程图208主界面309子界面410美学设计511网页配色基本概念5...

用户界面设计实验-系统界面设计实例

Experiment2Designagraphicuserinterface用户界面设计实例设计的系统名称个人日常事务管理系统针对用户群是广大电脑用户有一定的电脑操作基础officer和广大学生一系统需求分析T...

软件工程用户界面设计报告

用户界面设计报告网上冲浪助理目录0文档介绍网上冲浪助理用户界面的概要设计文档1文档目的确定用户界面的整体风格初步设计软件的框架结构为项目的详细设计实现测试和维护提供依据02文档范围用户界面主界面各个从界面以及各...

人机交互用户界面设计实验报告

实验一图形用户界面的设计一实验目的和要求1熟悉图形用户界面的设计原则2利用一种设计工具完成图形化的用户界面设计二实验内容与步骤一实验内容利用常用的设计工具VCVBDelphiPB等完成一个通用图形用户界面设计要...

用户界面实验报告

用户界面设计实验报告学号11061147姓名李春豪班级名称计科5班指导教师程鹏实验日期目录Experiment1EvaluationPractices1Experiment2Designagraphicuser...

实验报告3 用户界面设计

C数据库技术应用与开发实验报告320xx919用户界面设计指导教师实验名称完成日期XXX电子商务XXX电子商务班姓名专业班级

用户界面设计-人机交互实验报告

人机交互实验报告题目专业班级20xx学号20xx221104220xx6姓名孙元喜实验一图形用户界面的设计一实验目的和要求1熟悉图形用户界面的设计原则2利用一种设计工具完成图形化的用户界面设计二预备知识图形用户...

实验二 windows用户界面设计

实验二windows用户界面设计一实验目的1掌握MicrosoftVisio的使用方法熟悉其中的各种图表学会利用MicrosoftVisio来建立所需要的用户界面2通过WindowsXP用户界面模板可以使用根据...

《C#数据库技术应用与开发》实验报告3 用户界面设计

C数据库技术应用与开发实验报告3用户界面设计指导教师19xx11于泳海实验名称完成日期XXXXXXXXXXXXXX姓名XXXXXXX专业班级

《C#数据库技术应用与开发》实验报告3 用户界面设计

C数据库技术应用与开发实验报告319xx11用户界面设计指导教师实验名称于泳海完成日期电子商务11级电子商务姓名专业班级郭文娟

用户界面设计实验模版(20xx版)

用户界面设计实验报告学号姓名班级名称12软工指导教师王新年实验日期目录Experiment1EvaluationPractices1Experiment2Designagraphicuserinterface3...

Java基础实验报告-图形用户界面设计

南京工程学院实验报告课程名称JAVA基础实验项目名称图形用户界面设计实验学生班级实验学生姓名学号同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日一实验目的和要求1掌握JavaSwing组建的使用方法包...

用户界面设计实验报告(16篇)