2016-06-08 6 views
0

번호에 따라 실행해야하는이 코드가 있습니다. 나는 그것이 쉽다라고 생각했다. 그렇지만이 벽돌 벽이 나를 때렸다 ...Dyanmic JTable 만들기, 어떤 테이블인지 어떻게 알 수 있습니까?

나는 어떤 테이블을 클릭 할 것인가, 어떤 테이블을 넣을 것인지 어떻게 알 수 있는가 ???

private void createTablesForBuilding() { 
    int buildingcoutns = 3; 

    for (int i = 0; i < buildingcoutns; i++) { 
     JTable jt = new JTable(); 

     tables.add(jt); 
     tables.get(i).setModel(new javax.swing.table.DefaultTableModel(
       new Object[][]{ 
        {null, null, null, null}, 
        {null, null, null, null}, 
        {null, null, null, null}, 
        {null, null, null, null} 
       }, 
       new String[]{ 
        "Title 1", "Title 2", "Title 3", "Title 4" 
       } 
     )); 

     tables.get(i).getSelectionModel().addListSelectionListener(new ListSelectionListener() { 
      @Override 
      public void valueChanged(ListSelectionEvent e) { 
       if (jt.getSelectedRow() > -1) { 
        System.out.print("what now???"); 
       } 
      } 
     }); 

     JScrollPane js = new JScrollPane(); 
     js.setViewportView(tables.get(i)); 

     JPanel jp = new JPanel(); 
     jp.add(js); 

     Buildings_Panel.add(jp); 
    } 
} 

답변

0

! 나는 별도의 클래스를 만들고 테이블에 ID를 넣을 수있는 변수를 할당했습니다. 이것이 내가 한 일이다.

private void createTablesForBuilding() { 
    int buildingcoutns = 5; 

    for (int i = 0; i < buildingcoutns; i++) { 
     myTables tbls = new myTables(); 
     tbls.setTableID(i); 

     tables.add(tbls); 

     JTable thistable = tables.get(i).table; 

     thistable.setModel(new javax.swing.table.DefaultTableModel(
       new Object[][]{ 
        {null, null, null, null}, 
        {null, null, null, null}, 
        {null, null, null, null}, 
        {null, null, null, null} 
       }, 
       new String[]{ 
        "Title 1", "Title 2", "Title 3", "Title 4" 
       } 
     )); 

     tables.get(i).table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { 
      @Override 
      public void valueChanged(ListSelectionEvent e) { 
       if (thistable.getSelectedRow() > -1) { 
        System.out.println("tableID is:"+tbls.getTableID()); 
       } 
      } 
     }); 

     Buildings_Panel.add(tables.get(i)); 
    } 
} 

여기가 myTables

public class myTables extends javax.swing.JPanel { 

int tableID = 0; 

public myTables() { 
    initComponents(); 
} 

public void setTableID(int i){ 
    tableID = i; 
} 
public int getTableID(){ 
    return tableID; 
} 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jScrollPane1 = new javax.swing.JScrollPane(); 
    table = new javax.swing.JTable(); 

    setLayout(new java.awt.CardLayout()); 

    table.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null} 
     }, 
     new String [] { 
      "Title 1", "Title 2", "Title 3", "Title 4" 
     } 
    )); 
    jScrollPane1.setViewportView(table); 

    add(jScrollPane1, "card2"); 
}// </editor-fold>       


// Variables declaration - do not modify      
private javax.swing.JScrollPane jScrollPane1; 
public javax.swing.JTable table; 
// End of variables declaration     

}

입니다