有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在从另一个Jtable中选择行时显示Jtable中的数据

我在这个网站上看到了一个问题。既然我和问我同样问题的人有同样的问题,我想再问一个问题。如何将其转化为代码:

  • 询问主表所选行是什么(getSelectedRow())
  • 将此视图行索引转换为模型行索引(convertRowIndexToModel())
  • 向模型询问此索引处的数据,并提取数据的ID。模型应该是您编写的一个类,扩展AbstractTableModel
  • 然后从该ID获取要显示在三个子表中的数据,并更改这三个表的模型(或模型中包含的数据)

提前谢谢。在我的课程的这一部分,我经历了一段艰难的时光。因为我只知道

tablePersonalProperty.setModel(DbUtils.resultSetToTableModel(rs)); 

显示表中的所有项目时。我需要的是显示我从主表中选择的具有相同id的项


共 (2) 个答案

  1. # 1 楼答案

    在我们帮助您编写代码之前,我们需要更多信息。 两个表的列是否完全相同? 您已经在使用自己的自定义数据模型了吗?如果没有,那么你可能需要自己尝试一下。我不能为你写这篇文章,因为我不知道你需要在模型中包含什么。如果您使用的是netbeans,那么可以使用表单设计器来帮助您编写表模型。在将JTable添加到JPanel的JFrame之后,只需查看它的属性。不管怎样,我最终还是创建了自己的,但Netbeans生成的代码帮助我开始了

  2. # 2 楼答案

    此示例代码将帮助您完成所需的操作,它显示了如何在“行中单击”事件中将表行从一个表移动到另一个表

    public class InsertRows{
      public static void main(String[] args) {
      new InsertRows();
      }
    
      public InsertRows(){
      final JTable table, table2;
      final DefaultTableModel model, model2;
      JFrame frame = new JFrame("Inserting rows in the table!");
      String data[][] = {{"Vinod","100"},{"Raju","200"},{"Ranju","300"}};
      String col[] = {"Name","code"};
      Object[][] selrowData = {};   
      model = new DefaultTableModel(data,col);
      model2 = new DefaultTableModel(selrowData,col);
    
      GridLayout gl = new GridLayout(2,1); 
    
      table = new JTable(model);
      table2 = new JTable(model2);
      //Insert first position
      model.insertRow(0,new Object[]{"Ranjan","50"});
      //Insert 4 position
      model.insertRow(3,new Object[]{"Amar","600"});
      //Insert last position
      model.insertRow(table.getRowCount(),new Object[]{"Sushil","600"});
    
    
        ListSelectionModel cellSelectionModel = table.getSelectionModel();
        cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    
        cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
          public void valueChanged(ListSelectionEvent e) {
            String selectedData = null;
            String selectedData2 = null;
        Object[][] val = {};
            int selectedRow = table.getSelectedRow();
            int selectedColumns = table.getColumnCount();
    
            model2.insertRow(0,new Object[]{(String) table.getValueAt(selectedRow, selectedColumns-selectedColumns),(String) table.getValueAt(selectedRow, selectedColumns-1) });   
          }
        });
    
      frame.setLayout(gl);
      frame.add(new JScrollPane(table));
      frame.add(new JScrollPane(table2));
      frame.setSize(600,600);
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
    }