2017-02-23 171 views
0

我想創建一個JTable,它可以在按下按鈕時更改外部突出顯示的單元格的邊框顏色。java Swing JTable更改單元格邊框

我已經發現瞭如何使按鈕並獲得具有細胞中的信息來改變這樣的:

 frame.add(new JButton(new AbstractAction("Create Border "){ 

     private static final long serialVersionUID = 1L; 

     private void createBorder(){ 
      System.out.println(table.getSelectedColumn()); 
      System.out.println(table.getSelectedRow()); 
      System.out.println(table.getSelectedRowCount()); 
      System.out.println(table.getSelectedColumnCount()); 
      System.out.println(table.getSelectedRows()[0]); 
      System.out.println(table.getSelectedColumns());    

     } 

     @Override 
     public void actionPerformed(ActionEvent e){ 
      createBorder(); 
     } 

    }), BorderLayout.SOUTH); 
    frame.pack(); 
    frame.setLocation(150,150); 
    frame.setVisible(true); 

} 

什麼現在剩下的工作就是以某種方式獲得單個細胞並改變他們的境界。

到目前爲止,我只找到通過渲染器創建表時更改邊框的解決方案。

+0

*「我只找到通過渲染器在創建表格時更改邊框的解決方案。」*渲染器可以根據行,列,值,**選擇改變渲染單元格的方式** ,焦點等,但它有權訪問的任何屬性的值。因此,如果渲染器被聲明爲'GUI'的內部類並且所述'GUI'具有布爾屬性(例如'makeBigBorder'),則渲染器可以根據「makeBigBorder」是true還是false來更改渲染。 –

回答

1

我只找到通過渲染器創建表時更改邊框的解決方案。

另一種方法可能是壓倒一切的JTableprepareRenderer(...)方法,所以你並不需要爲每個數據類型的自定義呈現。

查看Table Row Rendering瞭解此方法的一些示例。一個示例顯示瞭如何在整行而不是每個單元格周圍放置邊框。