2016-06-26 73 views
0

我想在Jtable Java中爲單元格着色?像這樣的圖片:我想在Jtable Java中爲單元格着色?

http://i.stack.imgur.com/yuzZR.png

可以sameone幫我謝謝!

代碼我想最後

import javax.swing.*; 

import javax.swing.table.AbstractTableModel; 

import javax.swing.table.DefaultTableCellRenderer; 

import java.awt.BorderLayout; 

import java.awt.Color; 

import java.awt.Component; 

public class Main 
{ 
     /** 
     * @param args 
     */ 
     public static void main(String[] args) 
     { 
       JFrame frame = new JFrame(); 
       frame.add(new JComboxTable(), BorderLayout.NORTH); 
       frame.setVisible(true); 
       frame.setSize(300, 300); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     } 
} 

class JComboxTable extends JTable 
{ 

     public static JComboBox cb; 

     public JComboxTable() 
     { 
       TableModel tree = new TableModel(); 
       TableRenderer render = new TableRenderer(); 
       setModel(tree); 
       setDefaultRenderer(Object.class, render); 
       tree.fireTableDataChanged(); 
     } 

} 

class TableModel extends AbstractTableModel 
{ 

     public int getColumnCount() 
     { 
       return 2; 
     } 

     public int getRowCount() 
     { 
       return 5; 
     } 

     @Override 
     public Class<?> getColumnClass(int columnIndex) 
     { 
       if (columnIndex == 0) 
       { 
         return String.class; 
       } 
       else 
       { 
         return Color.class; 
       } 
     } 

     public Object getValueAt(int rowIndex, int columnIndex) 
     { 
       if (columnIndex == 0) 
       { 
         return "Salut" + rowIndex; 
       } 
       else 
       { 
         if((rowIndex % 2) == 0) 
         { 
           return Color.RED ; 
         }else 
         { 
           return Color.BLUE ; 
         } 
       } 
     } 

} 

class TableRenderer extends DefaultTableCellRenderer 
{ 

     public Component getTableCellRendererComponent(JTable table, Object value, 
         boolean isSelected, boolean hasFocus, int row, int column) 
     { 
       if (value instanceof Color) 
       { 
         setBackground((Color) value); 
         setText(""); 
       } 
       else 
       { 
         setBackground((Color)table.getModel().getValueAt(row, 1)); 
         setText( (String)value); 
       } 

       return this; 
     } 

} 
} 
+1

純粹的代碼寫入請求是關於堆棧溢出題外話題 - 我們期望 這裏的問題與*特定的*編程問題有關 - 但我們 會很樂意幫助你自己寫!告訴我們 [你試過的東西](http://stackoverflow.com/help/how-to-ask),以及你卡在哪裏。 這也將幫助我們更好地回答你的問題。 –

回答