String arr[] = { "ISBN", "book name", "author", "price" }; String comm[][] = new String[row][4]; rs.next(); for (int i = 0; i < row; i++) { comm[i][0] = rs.getString("ISBN"); comm[i][1] = rs.getString("book_name"); comm[i][2] = rs.getString("author"); comm[i][3] = rs.getString("price"); rs.next(); } JTable jTable = new JTable(comm, arr); jTable.setBounds(0, 10, 980, 400); JTableHeader head = jTable.getTableHeader(); head.setPreferredSize(new Dimension(head.getWidth(), 35)); head.setFont(new Font("Arial", Font.PLAIN, 30)); jTable.setFont(new Font("Menu.font", Font.PLAIN, 20)); jTable.setRowHeight(25); jTable.setPreferredScrollableViewportSize(new Dimension(800, 300));// 设置可滚动视图的大小 JScrollPane jScrollPane = new JScrollPane(jTable); jScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); this.add(jScrollPane, BorderLayout.CENTER);// 将滚动条放到窗体 setDefaultCloseOperation(EXIT_ON_CLOSE); jTable.setVisible(true); this.setVisible(true);// 设置窗体可见 this.validate();// 设置组件可见 this.pack();// 自动调整组建大小使每个组键都能显示 this.setLocationRelativeTo(null); this.setTitle("Booklist"); this.setSize(1000, 600); this.setLayout(null); jScrollPane.setBounds(0, 70, 980, 300);// 添加这一行 在这段代码中加入一个输入框和按钮点击按钮筛选出table第二行和输入内容相同的行,其他行隐藏起来
时间: 2023-07-16 18:17:30 浏览: 87
你可以在代码中添加一个文本框和一个按钮,用于输入筛选条件和触发筛选操作。然后在按钮的点击事件中,根据输入的条件筛选出需要显示的行,其他行则将其隐藏起来。
这里提供一种实现方式:
首先,在窗口中添加一个文本框和一个按钮:
```
JTextField filterField = new JTextField();
filterField.setBounds(10, 10, 150, 30);
this.add(filterField);
JButton filterButton = new JButton("Filter");
filterButton.setBounds(170, 10, 80, 30);
this.add(filterButton);
```
接着,在按钮的点击事件中实现筛选逻辑:
```
filterButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String filterText = filterField.getText();
for (int i = 0; i < row; i++) {
if (comm[i][1].equals(filterText)) {
jTable.setRowHeight(i, 25);
} else {
jTable.setRowHeight(i, 0);
}
}
}
});
```
这里假设你要筛选第二列的值与输入框中的文本相同的行。如果不同列需要筛选,可以根据列的索引号修改代码中的 `comm[i][1]`。筛选时,将需要显示的行的高度设为 25,其他行则将其高度设为 0,从而隐藏起来。
阅读全文