从jComboBox查询jTable可以通过以下步骤实现:
getSelectedItem()
方法获取选中的值。getModel()
方法获取jTable的数据模型。getRowCount()
方法获取行数。getValueAt(row, column)
方法获取指定行和列的值。addColumn()
方法添加列名。addRow()
方法添加每一行的数据。以下是一个示例代码,演示如何从jComboBox查询jTable:
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ComboBoxTableExample extends JFrame {
private JComboBox<String> comboBox;
private JTable table;
private DefaultTableModel tableModel;
public ComboBoxTableExample() {
setTitle("ComboBox Table Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// 创建jComboBox并添加选项
comboBox = new JComboBox<>();
comboBox.addItem("Option 1");
comboBox.addItem("Option 2");
comboBox.addItem("Option 3");
// 创建jTable并设置数据模型
tableModel = new DefaultTableModel();
tableModel.addColumn("Column 1");
tableModel.addColumn("Column 2");
table = new JTable(tableModel);
// 创建查询按钮
JButton searchButton = new JButton("Search");
searchButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String selectedValue = (String) comboBox.getSelectedItem();
filterTable(selectedValue);
}
});
// 添加组件到界面
add(comboBox, BorderLayout.NORTH);
add(new JScrollPane(table), BorderLayout.CENTER);
add(searchButton, BorderLayout.SOUTH);
pack();
setVisible(true);
}
private void filterTable(String selectedValue) {
// 清空原有数据
tableModel.setRowCount(0);
// 遍历jTable的每一行数据
for (int i = 0; i < table.getRowCount(); i++) {
// 判断某一列的值是否与选中的值相等
if (table.getValueAt(i, 0).equals(selectedValue)) {
// 添加匹配的行数据到新的jTable
Object[] rowData = new Object[table.getColumnCount()];
for (int j = 0; j < table.getColumnCount(); j++) {
rowData[j] = table.getValueAt(i, j);
}
tableModel.addRow(rowData);
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ComboBoxTableExample();
}
});
}
}
这个示例中,我们创建了一个带有jComboBox和jTable的界面。用户可以选择jComboBox中的选项,并点击"Search"按钮进行查询。根据选中的值,筛选出匹配的行数据,并显示在新的jTable中。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云