0
我創建了一個JTable
,其中包含4個填充了來自txt文件的數據的列。因此,每個單元格中插入的數據類型都沒有驗證。第二列和第三列必須填入「int」。 我想爲這兩列中不包含「int」值的每個單元格設置紅色字體。JTable中的單元格setBorder更改了附近的單元格背景
問題:附近單元格的背景也被修改。我該如何解決這個問題?
/**
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates and open the template
* in the editor.
*/
package rdjcsv;
import java.awt.Color;
import javax.swing.BorderFactory;
import static javax.swing.BorderFactory.createEmptyBorder;
public class MyCellRendererKO extends javax.swing.table.DefaultTableCellRenderer {
public MyCellRendererKO() {
setOpaque(true); //MUST do this for background to show up.
}
public java.awt.Component getTableCellRendererComponent(
javax.swing.JTabletable, java.lang.Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
if (isNumeric(table.getValueAt(row, column).toString())) {
//setBorder(createEmptyBorder());
setForeground(Color.black);
setValue(value);
} else {
setForeground(Color.red);
//setBorder(BorderFactory.createLineBorder(Color.RED,1));
setValue(value);
}
return this;
}
}
…
MyCellRendererKO mcr = new MyCellRendererKO();
jTable1.getColumnModel().getColumn(i).setCellRenderer(mcr);
謝謝! :) 有效。 –