用java设计一个一元二次方程求根的界面,用到的组件类有:标签JLabel、文本框JTextField、按钮JButton,要求每个文本框接收一个方程的系数,前有标签提示对应的系数信息,需要有一个文本框显示结果(不可编辑),两个按钮,一个表示计算、一个表示清空。从创建包开始,要求写出相应代码
时间: 2024-03-20 11:43:49 浏览: 10
好的,我来设计一个简单的界面,并实现计算和清空的功能。界面如下所示:
```
一元二次方程求根器
系数a: [ ]
系数b: [ ]
系数c: [ ]
结果: [ ]
[计算] [清空]
```
其中,系数a、系数b、系数c和结果都是文本框,计算和清空是按钮。
Java代码如下:
```
package com.example.quadraticequationsolver;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class QuadraticEquationSolverUI extends JFrame {
private JLabel labelA;
private JLabel labelB;
private JLabel labelC;
private JTextField textFieldA;
private JTextField textFieldB;
private JTextField textFieldC;
private JTextField textFieldResult;
private JButton buttonCalculate;
private JButton buttonClear;
public QuadraticEquationSolverUI() {
// 设置窗口标题
setTitle("一元二次方程求根器");
// 设置窗口大小
setSize(400, 200);
// 设置窗口关闭方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建面板
JPanel panel = new JPanel();
// 创建组件
labelA = new JLabel("系数a:");
textFieldA = new JTextField(10);
labelB = new JLabel("系数b:");
textFieldB = new JTextField(10);
labelC = new JLabel("系数c:");
textFieldC = new JTextField(10);
textFieldResult = new JTextField(20);
textFieldResult.setEditable(false);
buttonCalculate = new JButton("计算");
buttonClear = new JButton("清空");
// 添加组件到面板
panel.add(labelA);
panel.add(textFieldA);
panel.add(labelB);
panel.add(textFieldB);
panel.add(labelC);
panel.add(textFieldC);
panel.add(textFieldResult);
panel.add(buttonCalculate);
panel.add(buttonClear);
// 添加面板到窗口
add(panel);
// 注册计算按钮的事件监听器
buttonCalculate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double a = Double.parseDouble(textFieldA.getText());
double b = Double.parseDouble(textFieldB.getText());
double c = Double.parseDouble(textFieldC.getText());
double delta = b * b - 4 * a * c;
if (delta >= 0) {
double x1 = (-b + Math.sqrt(delta)) / (2 * a);
double x2 = (-b - Math.sqrt(delta)) / (2 * a);
textFieldResult.setText("x1=" + x1 + ", x2=" + x2);
} else {
textFieldResult.setText("无实数解");
}
}
});
// 注册清空按钮的事件监听器
buttonClear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textFieldA.setText("");
textFieldB.setText("");
textFieldC.setText("");
textFieldResult.setText("");
}
});
// 显示窗口
setVisible(true);
}
public static void main(String[] args) {
new QuadraticEquationSolverUI();
}
}
```
在这个代码中,我们在创建面板时,注册了计算按钮和清空按钮的事件监听器。在计算按钮的事件监听器中,首先获取三个文本框的值,然后计算一元二次方程的根,并将结果设置到结果文本框中。在清空按钮的事件监听器中,我们通过将三个文本框和结果文本框的文本内容设置为空字符串来清空这些文本框。