приветствую.
мне надо создать таблицу в которой будут выводиться данные из БД, но так чтоб одна колонка была с Jcheckbox'ами. Ниже приведен код... почти вес получилось - единственное что checkbox'ы отображаются только когда по ним кликаешь, в остальное время там значения (true/false).
DefaultTableModel model = new DefaultTableModel(){
public boolean isCellEditable(int rowIndex, int mColIndex) { if (mColIndex == 2) return true; return false;}
};
// Create a couple of columns
model.addColumn("No");
model.addColumn("Ф.И.О.");
model.addColumn("Присутствие");
for (int i = 0; ... /* тут пробегаюсь по всему HashMap'у*/; i++){
model.addRow(new Object[]{obj.get("id"),
obj.get("firstname") + " " + obj.get("lastname") + " " + obj.get("surname"),
Boolean.TRUE });
}
table.setModel(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumn col = table.getColumnModel().getColumn(0);
col.setPreferredWidth(50);
col = table.getColumnModel().getColumn(1);
col.setPreferredWidth(300);
col = table.getColumnModel().getColumn(2);
col.setCellEditor(new DefaultCellEditor(new JCheckBox()));
col.setPreferredWidth(100);
JTable and Jcheckbox
Модератор: Absurd
Мужчина должен уметь делать все, кроме как рожать детей и трахаться в задницу.
С этой ерундой не часто работаю, на сколько я поню там можно дёргнуть Repaint у обекта для отрисовки, эту штуку можно поместить на onRepaint таблицы...
Это просто мысли в слух, должно быть решение гораздо лучше
Это просто мысли в слух, должно быть решение гораздо лучше

Всё об отдыхе на http://chugaga.com
спасибо конечно!
я уверен, что можно как то по другому это сделать.... идей больше никаких нет?
там можно любой тип контрола докинуть в JTable .... но вопрос как??
я уверен, что можно как то по другому это сделать.... идей больше никаких нет?
там можно любой тип контрола докинуть в JTable .... но вопрос как??
Мужчина должен уметь делать все, кроме как рожать детей и трахаться в задницу.
ну в общем. если кого заинтересует вопрос - вот решение:
добавляем строку (к тому коду что выше)
col.setCellRenderer(new cGenderRenderer());
описываем класс cGenderRenderer.
import java.awt.Component;
import javax.swing.*;
import javax.swing.table.TableCellRenderer;
public class cGenderRenderer extends JCheckBox
implements TableCellRenderer {
public cGenderRenderer() {
super();
}
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int
row,
int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
boolean isMale = ((Boolean) value).booleanValue();
setSelected(isMale ? false : true);
return this;
}
}
вот собственно говоря и все.
добавляем строку (к тому коду что выше)
col.setCellRenderer(new cGenderRenderer());
описываем класс cGenderRenderer.
import java.awt.Component;
import javax.swing.*;
import javax.swing.table.TableCellRenderer;
public class cGenderRenderer extends JCheckBox
implements TableCellRenderer {
public cGenderRenderer() {
super();
}
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int
row,
int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
boolean isMale = ((Boolean) value).booleanValue();
setSelected(isMale ? false : true);
return this;
}
}
вот собственно говоря и все.
Мужчина должен уметь делать все, кроме как рожать детей и трахаться в задницу.