Oi, estou tentando fazer um renderizador da célula que seja no canto esquerdo uma checkbox e do resto ser label. Alguém já fez isso? Eu não acho nenhum exemplo disso.
Aqui vai minha tentativa:
import java.awt.Component;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
public class TableCheckboxRenderer implements TableCellRenderer {
/**
*
*/
private final JPanel checkPanel = new JPanel(new GridBagLayout());
/**
*
*/
private final JCheckBox checkBox = new JCheckBox();
/**
*
*/
private final JLabel label = new JLabel();
/**
*
*/
public TableCheckboxRenderer() {
GridBagUtilities util = new GridBagUtilities(checkPanel);
util.addRight(new Insets(0, 0, 0, 5), checkBox);
util.addDown(new Insets(0, 0, 0, 5), label);
}
/**
* {@inheritDoc}
*/
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
String dates = ((String) value);
Component result;
JLabel _label;
checkBox.setMargin(new Insets(1, 0, 1, 3));
checkBox.setSelected(dates.length() > 0 ? true : false);
result = checkPanel;
_label = label;
_label.setText(dates);
return result;
}
}
e nada!
abs