解释一下DefaultTableModel newtableModel=(DefaultTableModel)table.getModel();
时间: 2024-06-10 18:10:16
浏览: 9
这行[代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083)的[作用](https://geek.csdn.net/educolumn/1006730a19828887f70dae3b8cbe1e07?spm=1055.2569.3001.10083)是将JTable组件中的TableModel[对象](https://geek.csdn.net/educolumn/04c51611e4b730957464192e0307b82c?spm=1055.2569.3001.10083)转换为DefaultTableModel类型的[对象](https://geek.csdn.net/educolumn/04c51611e4b730957464192e0307b82c?spm=1055.2569.3001.10083),并将其赋值给newtableModel变量。DefaultTableModel是一个实现了TableModel接口的类,它提供了一些默认的实现,可以用于处理表格数据。通过这个[方式](https://geek.csdn.net/educolumn/0a7fca90472e8d39fd3078246e0b14f3?spm=1055.2569.3001.10083),我们可以方便地对表格数据进行增删改查等操作。
相关问题
public void searchAndDisplay(String searchText, JTable table, JTable resultTable) { TableModel model = table.getModel(); int rowCount = model.getRowCount(); int colCount = model.getColumnCount(); DefaultTableModel resultModel = new DefaultTableModel(); //resultModel.setColumnIdentifiers(UserTable.getColumnIdentifiers()); for (int i = 0; i < rowCount; i++) { for (int j = 0; j < colCount; j++) { if (searchText.equals(model.getValueAt(i, j).toString())) { Object[] rowData = new Object[colCount]; for (int k = 0; k < colCount; k++) { rowData[k] = model.getValueAt(i, k); } resultModel.addRow(rowData); } } } resultTable.setModel(resultModel); } private void UserSearchActionPerformed(ActionEvent evt) { // TODO Auto-generated method stub String UserName = this.UserNameTxt.getText(); int column = 4; for(int row = 0;row< UserTable.getRowCount();row++) { Object value = UserTable.getValueAt(row, column); if(value.equals(UserName)) { DefaultTableModel dtm = (DefaultTableModel) UserTable.getModel(); dtm.setRowCount(0); /*TableRowSorter<TableModel> sorter = new TableRowSorter<>(model); sorter.setRowFilter(RowFilter.regexFilter(UserName)); UserTable.setRowSorter(sorter);*/ }else { JOptionPane.showMessageDialog(null, "该用户不存在"); return; } } }为我的代码添加一个查找功能:当我输入用户姓名时,它能从json文件中找到相应的数据并输出特定行
好的,那么您想要的功能可以通过以下步骤来实现:
1. 首先需要从json文件中读取数据,将其转化为Java对象。
2. 然后遍历Java对象,查找符合条件的数据行。
3. 最后将符合条件的数据行添加到新的TableModel中,并将其设置到显示结果的JTable中。
以下是示例代码,供您参考:
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import com.google.gson.Gson;
public class JsonSearchDemo {
public static void main(String[] args) {
// 示例代码中使用了Gson库来解析json文件,您可以根据实际情况选择其他库或自行解析。
Gson gson = new Gs
```
import java.awt.event.*; import java.awt.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; public class MyTableWin extends JFrame implements ActionListener { Object rows[][] = { { "001", "zhang", "03/04/2002", "Computer" }, { "002", "Li", "05/10/2002", "Chinese" }, { "003", "Wang", "09/10/2002", "English" } }; String cols[] = { "number", "name", "birthday", "department" }; JTable table; JLabel lbl_show; JTextField txt_show; JButton btn_update; JPanel pSouth, pNorth; JScrollPane jp; public MyTableWin() { table = new JTable(rows, cols); // 表格里点谁就显示谁 table.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { int row = table.getSelectedRow(); int column = table.getSelectedColumn(); Object selectedvalue = table.getModel().getValueAt(row, column); txt_show.setText((String) selectedvalue); btn_update.setEnabled(true); } }); lbl_show = new JLabel("Info."); txt_show = new JTextField(15); btn_update = new JButton("Update"); btn_update.setEnabled(false); btn_update.addActionListener(this); pSouth = new JPanel(); pNorth = new JPanel(); jp = new JScrollPane(table); pNorth.add(jp); pSouth.add(lbl_show); pSouth.add(txt_show); pSouth.add(btn_update); add(pNorth, BorderLayout.CENTER); add(pSouth, BorderLayout.SOUTH); setVisible(true); setSize(800, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { int row = table.getSelectedRow(); int column = table.getSelectedColumn(); rows[row][column] = txt_show.getText(); int option = JOptionPane.showConfirmDialog(this, "do you confirm to update the table content?", "warning", JOptionPane.OK_CANCEL_OPTION); if (option == JOptionPane.OK_OPTION) { table.setModel(new DefaultTableModel(rows, cols)); } btn_update.setEnabled(false); } public static void main(String[] args) { MyTableWin win = new MyTableWin(); } }修改该程序,使得点击表格时,在控件台显示所在行一行的数据。
相关推荐















