用java代码演示:下拉列表实现表格数据分类
时间: 2024-04-09 10:32:37 浏览: 80
好的,下面是一个使用Java代码演示如何通过下拉列表实现表格数据分类的示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TableDataClassification extends JFrame {
private JComboBox<String> categoryComboBox;
private JTable dataTable;
private JScrollPane scrollPane;
private String[][] data;
public TableDataClassification() {
setTitle("Table Data Classification");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
// 初始化数据
data = new String[][]{
{"Apple", "Fruit"},
{"Carrot", "Vegetable"},
{"Tomato", "Fruit"},
{"Cabbage", "Vegetable"}
};
// 创建下拉列表
String[] categories = {"All", "Fruit", "Vegetable"};
categoryComboBox = new JComboBox<>(categories);
// 创建数据表格
String[] columnNames = {"Item", "Category"};
dataTable = new JTable(data, columnNames);
// 创建滚动面板,并将数据表格添加到其中
scrollPane = new JScrollPane(dataTable);
// 创建按钮,并添加事件监听器
JButton filterButton = new JButton("Filter");
filterButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
filterData();
}
});
// 创建面板,并将下拉列表和按钮添加到其中
JPanel controlPanel = new JPanel();
controlPanel.add(categoryComboBox);
controlPanel.add(filterButton);
// 设置布局和添加组件
setLayout(new BorderLayout());
add(controlPanel, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
}
// 根据选定的分类过滤数据
private void filterData() {
String selectedCategory = categoryComboBox.getSelectedItem().toString();
// 如果选择的分类是"All",显示所有数据
if (selectedCategory.equals("All")) {
dataTable.setModel(new javax.swing.table.DefaultTableModel(data, new String[]{"Item", "Category"}));
} else {
// 否则,根据选择的分类过滤数据
String[][] filteredData = new String[data.length][2];
int count = 0;
for (String[] row : data) {
if (row[1].equals(selectedCategory)) {
filteredData[count] = row;
count++;
}
}
filteredData = java.util.Arrays.copyOf(filteredData, count);
dataTable.setModel(new javax.swing.table.DefaultTableModel(filteredData, new String[]{"Item", "Category"}));
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TableDataClassification().setVisible(true);
}
});
}
}
```
上述代码演示了一个简单的Java图形用户界面(GUI),其中包含一个下拉列表、一个数据表格和一个按钮。当选择不同的分类时,按钮点击事件将根据所选分类过滤数据并更新表格显示结果。
希望这个示例能够帮助你理解如何使用Java代码实现通过下拉列表对表格数据进行分类。
阅读全文