Я пытаюсь использовать jtable для создания сетки 9x9, а затем использую пограничный коррендер, чтобы установить каждый 3 -й столбец и строки, чтобы иметь более толстую линию (например, плата судоку). Я могу легко заставить его работать в одну сторону (то есть только столбцы или только строки), что имеет смысл с моим текущим кодом: < /p>
private static class BorderColorRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Border border;
JComponent comp = (JComponent)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(column%3 == 0) {
border = BorderFactory.createMatteBorder(0, 2, 0, 0, Color.BLACK);
}else if(column==8){
border = BorderFactory.createMatteBorder(0, 0, 0, 2, Color.BLACK);
}else {
border = BorderFactory.createMatteBorder(0, 0, 0, 0, Color.BLACK);
}
comp.setBorder(border);
return comp;
}
}
< /code>
Очевидно, что это «сбрасывание» границ каждый раз, поэтому, когда я добавляю другой, если к концу, чтобы проверить строки, это сбрасывает 0, 2, 0, 0 и сделает 2 a 0 (так что обычная граница). < /p>
Моя идея заключалась пересекаются/встречаются в той же ячейке таблицы). Тем не менее, GetInsets () возвращает вставный объект, и я не могу получить доступ к каким -либо значениям в нем, ни склоняется к массиву (насколько я пытался).
Как я могу это сделать?
Подробнее здесь: https://stackoverflow.com/questions/796 ... s-to-array