3.参照例子15编写一个体现MVC结构的GUI程序。首先编写一个封装梯形类,然后编写一个窗口,要求窗口使用3个文本框和一个文本区为梯形对象中的数据提供视图,其中3个文本框用来显示和更新梯形对象的上底、下底和高,文本区对象用来显示梯形的面积。在窗口中有一个按钮,用户单击该按钮后,程序用3个文本框中的数据分别作为梯形对象的上底、下底和高,并将计算出的梯形的面积显示在文本区中。

时间: 2024-02-22 16:00:09 浏览: 26
好的,以下是我的解决方案: 首先,我们可以定义一个梯形类 `Trapezoid`,封装梯形的属性和方法: ```java public class Trapezoid { private double top, bottom, height; public Trapezoid(double top, double bottom, double height) { this.top = top; this.bottom = bottom; this.height = height; } public double getTop() { return top; } public void setTop(double top) { this.top = top; } public double getBottom() { return bottom; } public void setBottom(double bottom) { this.bottom = bottom; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getArea() { return (top + bottom) * height / 2; } } ``` 然后,我们可以编写一个窗口类 `TrapezoidView`,使用3个文本框和一个文本区来显示和更新梯形对象的数据,并提供一个按钮用来计算梯形的面积: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TrapezoidView extends JFrame implements ActionListener { private JTextField topField, bottomField, heightField; private JTextArea areaField; private JButton calcButton; private Trapezoid model; public TrapezoidView() { super("梯形计算器"); setLayout(new FlowLayout()); topField = new JTextField(10); bottomField = new JTextField(10); heightField = new JTextField(10); areaField = new JTextArea(5, 20); areaField.setEditable(false); add(new JLabel("上底:")); add(topField); add(new JLabel("下底:")); add(bottomField); add(new JLabel("高:")); add(heightField); add(new JLabel("面积:")); add(new JScrollPane(areaField)); calcButton = new JButton("计算"); add(calcButton); calcButton.addActionListener(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(250, 250); setVisible(true); } public void actionPerformed(ActionEvent e) { try { double top = Double.parseDouble(topField.getText()); double bottom = Double.parseDouble(bottomField.getText()); double height = Double.parseDouble(heightField.getText()); model = new Trapezoid(top, bottom, height); areaField.setText(Double.toString(model.getArea())); } catch (NumberFormatException ex) { areaField.setText("输入有误!"); } } public static void main(String[] args) { new TrapezoidView(); } } ``` 在窗口类中,我们使用了 `Trapezoid` 类作为模型,使用3个文本框和一个文本区来显示和更新模型的数据。在计算按钮的事件处理器中,首先尝试将输入的数据转换为 double 类型,如果输入有误则会抛出 NumberFormatException 异常,程序会捕获该异常并在文本区中显示错误提示。如果输入正确,则创建一个 `Trapezoid` 对象,并调用其 `getArea()` 方法计算梯形的面积,并将结果显示在文本区中。 这样,我们就实现了一个体现 MVC 结构的 GUI 程序,其中模型部分由 `Trapezoid` 类封装,视图部分由 `TrapezoidView` 窗口类实现,控制器部分则由计算按钮的事件处理器实现。

相关推荐

最新推荐

recommend-type

Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法

主要给大家介绍了关于Spring MVC如何配置双数据源实现一个java项目同时连接两个数据库的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
recommend-type

一个简单的spring mvc实例.docx

这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, ... 首先我们需要一个放在 WEB-INF 目录下的 web.xml 文件:
recommend-type

有关jsp+mvc+tomcat的一个注册登录程序代码

基于eclipse一个用户注册登录模块代码,有功能要求和开发工具要求。程序有关一个简单的jsp程序的注册登录代码
recommend-type

使用idea搭建一个spring mvc项目的图文教程

主要介绍了使用idea直接创建一个spring mvc项目的图文教程,本文通过图文并茂的方式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

C#程序提示“正由另一进程使用,因此该进程无法访问该文件”的解决办法

主要介绍了C#程序提示“正由另一进程使用,因此该进程无法访问该文件”的解决办法,本文通过改写程序代码实现解决这个问题,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。