2011-11-08 23 views
1

我想要一個標籤或文本字段,其中有一個數字表示在JTable中選擇的行數。我使用Netbeans和有約束力的性能試驗...有上JTable的屬性稱爲selectedElements ...好像可綁定JTable中selectedElements的數量嗎?

jTable[${selectedElements.length}] 

jTable[${selectedElements.size}] 

如果必將應該做的伎倆標籤/文本字段的文本屬性。當然,它不起作用。是否有可用於獲取選定元素數量的綁定表達式?

回答

3

我本來期望第二個選項可以工作 - 但不是。究其原因可能是以下(從API文檔ELProperty)

這是非常重要的,任何bean的屬性通過 解決ELProperty遵循Java Beans規範,包括髮射 屬性更改通知;否則,ELProperty無法 變化

列表的大小()方法符合既不的兩個條件作出響應。

一條出路是在轉換器堵塞(手動編碼,永遠不會使用NetBeans :-)

AutoBinding sizeBinding = 
     Bindings.createAutoBinding(UpdateStrategy.READ, 
      table, ELProperty.create("${selectedElements}"), 
      countLabel, BeanProperty.create("text") 
      ); 
    Converter<List<?>, String> converter = new Converter<List<?>, String>() { 

     @Override 
     public String convertForward(List<?>value) { 
      if (value != null) { 
       return "" + value.size(); 
      } 
      return "empty"; 
     } 

     @Override 
     public List<?> convertReverse(String value) { 
      return null; 
     } 

    }; 
    sizeBinding.setConverter(converter); 

另可實現和電線一個BeanAdapterProvider/-Factory,如在同一文檔中提到,沒有嘗試。

相關問題