写一个Java代码对于用Java图形化界面展示的海洋能源应用经济效益排行的设计与实现
时间: 2024-03-08 07:49:47 浏览: 84
好的,以下是一个简单的Java代码示例,实现了用Java图形化界面展示海洋能源应用经济效益排行的设计与实现:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class OceanEnergyRanking extends JFrame implements ActionListener {
JLabel lblTitle, lblRank1, lblRank2, lblRank3, lblRank4, lblRank5;
JButton btnQuery, btnSort;
JTextField txtQuery;
JRadioButton rbtnSortByProfit, rbtnSortByROI, rbtnSortByPayback;
ButtonGroup btnGroupSort;
public OceanEnergyRanking() {
// 设置窗口标题和大小
setTitle("海洋能源应用经济效益排行");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建控件
lblTitle = new JLabel("海洋能源应用经济效益排行");
lblRank1 = new JLabel("1. XXX 收益:XXX ROI:XXX 回收期:XXX");
lblRank2 = new JLabel("2. XXX 收益:XXX ROI:XXX 回收期:XXX");
lblRank3 = new JLabel("3. XXX 收益:XXX ROI:XXX 回收期:XXX");
lblRank4 = new JLabel("4. XXX 收益:XXX ROI:XXX 回收期:XXX");
lblRank5 = new JLabel("5. XXX 收益:XXX ROI:XXX 回收期:XXX");
btnQuery = new JButton("查询");
txtQuery = new JTextField(20);
rbtnSortByProfit = new JRadioButton("按收益排序");
rbtnSortByROI = new JRadioButton("按ROI排序");
rbtnSortByPayback = new JRadioButton("按回收期排序");
btnGroupSort = new ButtonGroup();
btnGroupSort.add(rbtnSortByProfit);
btnGroupSort.add(rbtnSortByROI);
btnGroupSort.add(rbtnSortByPayback);
btnSort = new JButton("排序");
// 设置控件布局
setLayout(new BorderLayout());
JPanel topPanel = new JPanel();
topPanel.setLayout(new FlowLayout());
topPanel.add(lblTitle);
add(topPanel, BorderLayout.NORTH);
JPanel centerPanel = new JPanel();
centerPanel.setLayout(new GridLayout(5, 1));
centerPanel.add(lblRank1);
centerPanel.add(lblRank2);
centerPanel.add(lblRank3);
centerPanel.add(lblRank4);
centerPanel.add(lblRank5);
add(centerPanel, BorderLayout.CENTER);
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new FlowLayout());
bottomPanel.add(new JLabel("查询:"));
bottomPanel.add(txtQuery);
bottomPanel.add(btnQuery);
bottomPanel.add(new JLabel("排序:"));
bottomPanel.add(rbtnSortByProfit);
bottomPanel.add(rbtnSortByROI);
bottomPanel.add(rbtnSortByPayback);
bottomPanel.add(btnSort);
add(bottomPanel, BorderLayout.SOUTH);
// 添加事件监听器
btnQuery.addActionListener(this);
btnSort.addActionListener(this);
// 显示窗口
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnQuery) {
// 查询数据并更新界面
String query = txtQuery.getText();
// TODO: 查询数据库中的数据并更新界面
} else if (e.getSource() == btnSort) {
// 按照用户选择的排序方式,对数据进行排序并更新界面
String sortField = "";
if (rbtnSortByProfit.isSelected()) {
sortField = "profit";
} else if (rbtnSortByROI.isSelected()) {
sortField = "roi";
} else if (rbtnSortByPayback.isSelected()) {
sortField = "payback";
}
// TODO: 查询数据库中的数据并按照指定字段排序,然后更新界面
}
}
public static void main(String[] args) {
// 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/ocean_energy", "root", "password");
System.out.println("数据库连接成功!");
} catch (Exception e) {
System.out.println("数据库连接失败:" + e.getMessage());
}
// 创建窗口并显示
new OceanEnergyRanking();
}
}
```
以上代码中,我们创建了一个 OceanEnergyRanking 类,继承了 JFrame 类,实现了 ActionListener 接口,用于处理按钮的点击事件。在构造函数中,我们创建了各种控件,并设置了布局。在 actionPerformed() 方法中,我们处理了按钮的点击事件,包括查询和排序,具体的实现可以根据实际需求进行修改。在 main() 方法中,我们连接了数据库,并创建了窗口并显示。
阅读全文