[英]How can I remove rows of 2d object array based on textfield value?
我有 7 行 4 列数据的表。
我想删除不等于 jtextfield 值的行?
我创建了 function,它将用新的 model 替换旧的 model。但它不像我预期的那样工作。
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 中删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.