不过原作者的代码并未实现其需求,在47、48行加上else cell.setBackground(Color.WHITE);即可正确实现。
修改后的完整代码如下:
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; //列表默认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[i][j] = "( " + (j+1) + ", " + (i+1) + " )";
}
}