Java图形用户界面设计入门:创建窗体与事件响应

版权申诉
0 下载量 4 浏览量 更新于2024-07-03 1 收藏 242KB DOC 举报
"本资源是关于Java程序设计中图形用户界面(GUI)设计基础的教程,主要通过案例学习,涵盖了创建窗体、组件添加、布局管理和事件响应等内容。" 在Java程序设计中,图形用户界面(GUI)是构建桌面应用程序的关键部分,它使得用户能够通过视觉元素与程序进行交互。本章节主要讲解了GUI的基础知识,包括创建窗体、使用布局管理器、添加组件以及处理用户事件。以下是对这些内容的详细阐述: 1. **图形用户界面和标准组件** - **图形用户界面简介**:GUI提供了一种直观的人机交互方式,利用诸如按钮、文本框、菜单等界面组件,使用户可以通过简单的鼠标和键盘操作来控制程序。相比于命令行界面,GUI更加友好,降低了用户学习和使用的难度。 - **标准组件**:在Java中,`javax.swing`包提供了许多预定义的组件,如`JFrame`(窗体)、`JButton`(按钮)、`JLabel`(标签)、`JTextArea`(文本区域)等。这些组件可以组合使用,构建出复杂的用户界面。 2. **创建窗体** - 在案例17中,创建了一个名为`Beijing`的程序,通过`JFrame`类创建了一个窗口,并设置了标题"2008年奥运会"。`JFrame`是Java Swing中的顶级容器,用于承载其他组件。 3. **布局管理器** - 为了在窗体上合理安排组件的位置和大小,使用了`GridLayout`布局管理器。`GridLayout`将容器划分为固定数量的行和列,每个组件占据一个网格。在这个案例中,设置为2行1列,因此两个按钮`msg1`和`msg2`会按网格排列。 4. **组件添加** - `msg1`和`msg2`是两个`JButton`,分别显示"北京欢迎您!"和"Welcome to Beijing!"。它们通过`add`方法添加到窗体的内容面板(`contentPane`)中。 5. **窗体设置** - `setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)`确保当用户关闭窗口时,整个应用程序退出。 - `setBounds(100,100,250,150)`定义了窗体的初始位置和尺寸。 - `setVisible(true)`使得窗体可见,完成GUI的显示。 通过这个案例,开发者可以了解到如何在Java中创建基本的GUI,以及如何使用布局管理器来组织组件。随着学习的深入,还将接触到更多的布局管理器,如`FlowLayout`、`BorderLayout`、`BoxLayout`和`GridBagLayout`等,以及事件监听和处理,以实现更丰富的用户交互功能。
2023-05-29 上传
南京工程学院 实 验 报 告 课程名称 JAVA基础 实验项目名称 图形用户界面设计 实验学生班级 实验学生姓名 学    号 同组学生姓名 实验时间 实验地点 实验成绩评定 指导教师签字 年 月 日 实验目的和要求 1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等 多种布局方式,掌握窗口菜单和快捷菜单设计方式。 理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事 件的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;//输入的工资 public WageJFrame() { super("计算个人所得税"); Dimension dim=getToolkit().getScreenSize();//获得屏幕分辨率 this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);//设置窗口 大小 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(