Java设置一个简单的页面第一个按钮华氏度转摄氏度 第二个按钮摄氏度转华氏度第三个按钮清除 同时使用JDBC访问数据源代码实现
时间: 2023-08-03 17:06:14 浏览: 101
以下是Java设置一个简单的页面第一个按钮华氏度转摄氏度 第二个按钮摄氏度转华氏度第三个按钮清除的代码实现,同时使用JDBC访问数据源:
```java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class TemperatureConverter extends Frame implements ActionListener {
private TextField inputField;
private Label outputLabel;
private Button fToCButton;
private Button cToFButton;
private Button clearButton;
private Connection conn;
public TemperatureConverter() {
// set up UI components
setTitle("Temperature Converter");
setLayout(new FlowLayout());
add(new Label("Enter temperature:", Label.RIGHT));
inputField = new TextField(5);
add(inputField);
fToCButton = new Button("F to C");
add(fToCButton);
fToCButton.addActionListener(this);
cToFButton = new Button("C to F");
add(cToFButton);
cToFButton.addActionListener(this);
clearButton = new Button("Clear");
add(clearButton);
clearButton.addActionListener(this);
outputLabel = new Label("Result will be shown here", Label.CENTER);
add(outputLabel);
// connect to database
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/temp_db", "root", "password");
} catch (Exception e) {
e.printStackTrace();
}
// set up frame
setSize(300, 150);
setVisible(true);
}
public void actionPerformed(ActionEvent evt) {
if (evt.getSource() == fToCButton) {
// convert Fahrenheit to Celsius
try {
double fahrenheit = Double.parseDouble(inputField.getText());
double celsius = (fahrenheit - 32) * 5 / 9;
outputLabel.setText(String.format("%.2f F = %.2f C", fahrenheit, celsius));
// insert conversion into database
PreparedStatement stmt = conn.prepareStatement("INSERT INTO conversions (fahrenheit, celsius) VALUES (?, ?)");
stmt.setDouble(1, fahrenheit);
stmt.setDouble(2, celsius);
stmt.executeUpdate();
} catch (NumberFormatException e) {
outputLabel.setText("Invalid input");
} catch (SQLException e) {
e.printStackTrace();
}
} else if (evt.getSource() == cToFButton) {
// convert Celsius to Fahrenheit
try {
double celsius = Double.parseDouble(inputField.getText());
double fahrenheit = celsius * 9 / 5 + 32;
outputLabel.setText(String.format("%.2f C = %.2f F", celsius, fahrenheit));
// insert conversion into database
PreparedStatement stmt = conn.prepareStatement("INSERT INTO conversions (fahrenheit, celsius) VALUES (?, ?)");
stmt.setDouble(1, fahrenheit);
stmt.setDouble(2, celsius);
stmt.executeUpdate();
} catch (NumberFormatException e) {
outputLabel.setText("Invalid input");
} catch (SQLException e) {
e.printStackTrace();
}
} else if (evt.getSource() == clearButton) {
// clear input field and output label
inputField.setText("");
outputLabel.setText("Result will be shown here");
}
}
public static void main(String[] args) {
new TemperatureConverter();
}
}
```
在这个例子中,我们使用了Java的AWT库来创建用户界面。我们创建了一个Frame,包含一个TextField用于输入温度,三个Button,以及一个Label用于显示转换结果。我们还实现了ActionListener接口,用于处理Button点击事件。
在连接到数据库时,我们使用了JDBC驱动程序和MySQL数据库。我们使用PreparedStatement来插入转换结果到一个名为“conversions”的表中,该表包含两个列:fahrenheit和celsius。
请注意,为了保持简单,我们在本例中使用了root用户和明文密码。在实际的应用程序中,您应该使用更安全的方式来处理数据库凭据。
阅读全文