簡體   English   中英

TreeCellRenderer:如何設置背景顏色?

[英]TreeCellRenderer: how to set background color?

我編寫了一個自定義的TreeCellRenderer來更改組件外觀。 一切正常,除了setBackground無效。 代碼肯定會執行,因為前景色始終會正確更改。 由於所選項目以藍色呈現並且取消選擇白色項目(沒有自己編寫該代碼),我認為我的更改被JTree覆蓋。 那么改變背景顏色的正確方法是什么?

這基本上是我的代碼:

JTree tree = new JTree(); 
tree.setCellRenderer(new MyCellRenderer()); 

///////

public class MyCellRenderer extends DefaultTreeCellRenderer{

   @Override
   public Component getTreeCellRendererComponent(JTree tree, Object value,
        boolean isSelected, boolean expanded, boolean leaf, int row,
        boolean hasFocus) {

    JComponent c = (JComponent) super.getTreeCellRendererComponent(tree, value, isSelected, expanded, leaf, row, hasFocus);
      DefaultMutableTreeNode node = (DefaultMutableTreeNode) value; 
      MyData data = (MyData)node.getUserObject();   
      if(data.isX()){
          c.setForeground(Color.blue); 
          c.setBackground(Color.gray); 
      }
      return c; 
    }
}

嘗試添加對c.setOpaque(true)的調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM