2014-07-25 37 views
-3

在我的java swing應用程序中,我想突出顯示jtable中的某些行。如何使用java來做到這一點。提前致謝。在java中突出顯示jtable中的某些行

+0

展示你的工作? –

+0

查看[如何使用表格](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)和[使用自定義渲染器](http://docs.oracle.com /javase/tutorial/uiswing/components/table.html#renderer) – MadProgrammer

+0

你也可以看看SwingLabs'JXTable',它提供了一個漂亮的行高亮API,[示例](http://stackoverflow.com/questions/ 9791719/swingx-jxtable-use-colorhighlighter-to-color-rows-based-on-a-row-object) – MadProgrammer

回答

2

發佈我的代碼。你可以理解這些概念並應用到你的項目中。

這會爲一列工作,並沒有突出整個行

import javax.swing.*; 
    import javax.swing.table.*; 
    import java.awt.*; 

    class MyTableCellRender extends DefaultTableCellRenderer { 

    public MyTableCellRender() { 
    setOpaque(true); 
    } 

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 

    String number = (String)value; 
    int val = Integer.parseInt(number); 

     if(val > 5){ 
      if(val >= 5000) { 
      setForeground(Color.black); 
      setBackground(Color.red); 
      } 
      else { 
      setForeground(Color.black); 
      setBackground(Color.yellow); 
      } 
     } 
     else{ 
     setBackground(Color.white); 
     setForeground(Color.black); 
     } 
    setText(value !=null ? value.toString() : ""); 
    return this; 
    } 
    } 
+0

您應該指出,這將適用於單列,並且不會突出顯示整行,除非您願意替換每行每個列的單元格渲染器... – MadProgrammer

+0

我只是想讓他看到這個概念,我不會爲他解決這個問題。 @MadProgrammer仍然編輯它。 –

+0

@DeepanshuBedi:非常感謝代碼。你能幫助你突出顯示錶格中的單個單元嗎? – victoryVSK