以下的文章主要是對Oracle修改JTable中的某個單元格的顏色的介紹,不過原編者的代碼沒有實現其實際的需求,在47、48行上加else cell.setBackground(Color.WHITE);即可,以下就是相關內容的介紹。
Oracle修改JTable後的完整代碼如下:
- import Java.awt.*;
- import Java.awt.event.*;
- import Javax.swing.*;
- import Javax.swing.table.*;
- public class TestTableCellColor extends JFrame
- {
- private String[] colname = {"第1列","第2列","第3列","第4列","第5列"};
表頭信息
- private String[][] data = new String[10][5];
表內容
界面組件----------------------
- private JScrollPane scroPanel = new JScrollPane();
中底層滾動面板
- private DefaultTableModel model;
Oracle修改JTable中某一單元格的顏色中列表默認TableModel
- private JTable table;
int r=1, c=2;用於控制變色區域
- public TestTableCellColor()
- {
- makeFace();
- addListener();
- showFace();
- }
- private void makeFace()
- {
表內容數組 data[][] 賦值------------
- for(int i = 0; i < 10; i++)
- {
- for(int j = 0; j < 5; j++)
- {
- data[j] = "( " + (j+1) + ", " + (i+1) + " )";
- }
- }
- table = new JTable(model = new DefaultTableModel(data,colname));
- table.setEnabled(false);
新建列表現器------------------------
- DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
- public Component getTableCellRendererComponent(JTable table, Object value,
- boolean isSelected, boolean hasFocus, int row, int column)
- {
- Component cell = super.getTableCellRendererComponent
- (table, value, isSelected, hasFocus, row, column);
- if(row==r && column==c && cell.isBackgroundSet())
設置變色的單元格
- cell.setBackground(Color.GRAY);
- else
- cell.setBackground(Color.WHITE);
- return cell;
- }
- };