2013-12-12 26 views
1

當我單擊表中的一行時,如何啓用禁用的按鈕?選擇行時啓用Jbutton

這裏是我當前的代碼:

public void disAbled2() { 

     DefaultTableModel model = (DefaultTableModel)tb_add.getModel(); 
     int row = tb_add.getSelectedRow(); 

     if(row>=0) { 
      b_add.setEnabled(true); 
     } 
    } 

回答

4

.addlistSelectionListener()Table,並使用該事件使按鈕

tb_add.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ 
public void valueChanged(ListSelectionEvent event) { 
    //enable button - put it in an EDT to be safe though 
} 
}); 

這手錶TableListSelection事件,該事件valueChanged在這裏可以進行您的更改

EDT - Event Dispatch Thread

您應該使用EDT線程,以便修改GUI,從而使得變化的GUI唯一的線索是一個避免干擾,像這樣

SwingUtilities.invokeLater( 
     new Runnable() { 
      public void run() { 
       b_add.setEnabled(true); 
      } 
     } 
    ); 
+1

謝謝主席先生。有效。 – speedsir

+1

除非選擇在EDT之外改變了一些方法,否則應該在EDT內觸發valueChanged事件,只是說;) – MadProgrammer