java - 如何根据文本字段值删除二维对象数组的行?
问题描述
我有 7 行 4 列数据的表。
我想删除不等于 jtextfield 值的行?
我创建了将旧模型替换为新模型的功能。但它不像我预期的那样工作。
public class App extends JFrame {
final String columns[] = {"Symbol", "Name", "Price", "Check"};//columns
public App() {
Object rows[][] = {
{"A", "About", 44.36, "sad"},
{"A", "About us", 44.36, "sad"},
{"M", "Home", 44.36, "sad"},
{"L", "About", 44.36, "sad"},
{"P", "About", 44.36, "sad"},
{"OL", "Log", 44.36, "sad"},
{"POOP", "Log", 44.36, "sad"},
};
DefaultTableModel model = new DefaultTableModel(rows, columns);
final JTable table = new JTable(model);
JScrollPane pane = new JScrollPane(table);
JFrame frame = new JFrame("Filter JTable");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(pane, BorderLayout.CENTER);
JPanel panel = new JPanel(new BorderLayout());
final JTextField filterText = new JTextField();
panel.add(filterText, BorderLayout.CENTER);
frame.add(panel, BorderLayout.NORTH);
frame.setSize(800, 800);
frame.setVisible(true);
filterText.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
int row = table.getRowCount();
int col = table.getColumnCount();
String textfield = filterText.getText();
Object[][] data= new Object[row][3];
for(int s=0;s<row;s++)
{
for(int x=0;x<col;x++)
{
if(table.getValueAt(s,0).toString().equals(textfield))
{
data[s][x] = table.getValueAt(s,0);
}
}
}
filterRow(data);
}
});
}
private void filterRow(Object[][] data)
{
DefaultTableModel model = new DefaultTableModel(data,columns);
final JTable table = new JTable(model);
JScrollPane pane = new JScrollPane(table);
JFrame frame = new JFrame("Filter JTable");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(pane, BorderLayout.CENTER);
JPanel panel = new JPanel(new BorderLayout());
final JTextField filterText = new JTextField();
panel.add(filterText, BorderLayout.CENTER);
frame.add(panel, BorderLayout.NORTH);
}
public static void main(String args[]) {
new App();
}
}
例如,我想在 jtextfield 中添加 About 值,并且所有其他数据都必须从 jtable 中删除。
解决方案
推荐阅读
- sql-server - 如何使用 Azure 托管实例配置 SSRS 配置?
- python - 使用 HoloViews+Bokeh 绘制连接到 HeatMap 的高斯分布
- java - 存储在垃圾收集过程中的引用对象的“年龄阈值”存储在哪里?
- php - Laravel 属于多返空
- r - 错误:无法组合`..1$A`
和`..2$A` > - xml - Dataweave:打开和关闭标签命名空间
- excel - 用VB.net打开Excel Office365 Doc
- java - 如果两个商店具有相同的 ID 并且他们希望与 Corp 同步,SymmetricDs 如何处理 ID 冲突
- youtube-api - 如何获取我订阅的频道的 ID?
- django - 如何在 django ORM 的 WHERE 子句上使用 CASE 语句进行查询?