2015-03-25 6 views
0

Im пытается установить строку, выбранную из JTable, я получаю и сравниваю все данные, полученные из моей БД, а затем, сравнивая, существуют ли данные, он должен установить эту строку.SET row selected

Я пробовал несколько функций, таких как setSelectionModel или setSelectionInterval, и ни одна из этих настроек не выбрала строку, которая имеет значение, которое оно должно выбрать.

Любые предложения?

heres some code .... не уверен, что это поможет, хотя ... но его то, что я читаю онлайн ... не выбираю строку, которую я хочу вообще ... leerTripulantesVuelo возвращает массив Tripulante, что и есть Я прохожу, чтобы выбрать ЭТОТ Трипуланте в списке.

ModeloTablaTripulantes tablaPil = new ModeloTablaTripulantes(); 
tablaPilotos.setModel(tablaPil); 
tablaPilotos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 

ArrayList<Tripulante> trip = new ArrayList(); 

    String tipoPersona = "t"; 
    String numVuelo = numeroVueloListaTripulantes.getText(); 

    try { 
     trip = Aerolinea.leerTripulantesVuelo(numVuelo); 
     for (Tripulante t: trip){ 
      for(int i =0; i<tablaPil.getRowCount();i++){ 
       if (tablaPil.getValueAt(i, 0).equals(t.getCedula())){ 
        tablaPilotos.getSelectionModel().setSelectionInterval(i, i); 
       } 
      } 

     } 
    } catch (BDException ex) { 
     ex.printStackTrace(); 
    } 
+0

У вас есть код, о котором мы можем поговорить? – chris

+0

только что добавил ... но не уверен, что это помогает, поскольку я ищу что-то, что я не нашел комментариев в Интернете, ха-ха .... есть ли команда setSelectedRow? как, например, для radioButton – ADC

ответ

0

Вот полный пример, который выбирает вторую строку в таблице. Я использую NetBeans, поэтому просто не заботятся о коде для ui. Код в jButton1ActionPerformed содержит jTable1.getSelectionModel().setSelectionInterval(row, row), который выполняет именно то, что я ожидал - выбор строки.
Ты уверен (а), что ваша программа работает до setSelectionInterval()? Может быть, строка содержит пробелы в конце. Отладка должна помочь выяснить.

package tripulante; 

public class Tripulante extends javax.swing.JFrame { 

    public Tripulante() { 
     initComponents(); 
    } 

    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jScrollPane1 = new javax.swing.JScrollPane(); 
     jTable1 = new javax.swing.JTable(); 
     jButton1 = new javax.swing.JButton(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     jTable1.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] { 
       {"sample 1", "a"}, 
       {"sample 2", "b"}, 
       {"sample 3", "c"}, 
       {"sample 4", "d"} 
      }, 
      new String [] { 
       "Title 1", "Title 2" 
      } 
     )); 
     jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); 
     jScrollPane1.setViewportView(jTable1); 

     jButton1.setText("Select lines"); 
     jButton1.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton1ActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 557, Short.MAX_VALUE) 
        .addGroup(layout.createSequentialGroup() 
         .addComponent(jButton1) 
         .addGap(0, 0, Short.MAX_VALUE))) 
       .addContainerGap()) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 351, Short.MAX_VALUE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(jButton1) 
       .addContainerGap()) 
     ); 

     pack(); 
    }// </editor-fold>       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     for (int row = 0; row < jTable1.getRowCount(); row++) { 
      String cellContent=jTable1.getValueAt(row, 0).toString(); 
      if (cellContent.equalsIgnoreCase("sample 2")) { 
       jTable1.getSelectionModel().setSelectionInterval(row, row); 
      } 
     } 
    }           

    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new Tripulante().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JButton jButton1; 
    private javax.swing.JScrollPane jScrollPane1; 
    private javax.swing.JTable jTable1; 
    // End of variables declaration     
}