p1.getViewport().addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
Point p = p1.getViewport().getViewPosition();
p2.getViewport().setViewPosition(p);
}
});
p2.getViewport().addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
Point p = p2.getViewport().getViewPosition();
p1.getViewport().setViewPosition(p);
}
});
Tuesday 20 April 2010
Tuesday 30 March 2010
How to add checkbox on specific rows
Comment ajouter un checkbox sur des lignes spécifiques sur une jtable?
You need to redefine the cellrenderer:
static class MyBooleanCellRenderer extends JCheckBox implements TableCellRenderer
{
private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
public MyBooleanCellRenderer () {
super();
setHorizontalAlignment(JLabel.CENTER);
setBorderPainted(true);
}
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());
}
setSelected((value != null && ((Boolean)value).booleanValue()));
if (hasFocus) {
setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
} else {
setBorder(noFocusBorder);
}
//si votre condition retourner un JLabel vide, sinon retourner this (JCheckbox)
if ()
return new JLabel();
return this;
}
}
and add this cellrenderer to the required column
TableColumn tcol = tableDestock.getColumnModel().getColumn(0);
tcol.setCellRenderer(new MyBooleanCellRenderer ());
You need to redefine the cellrenderer:
static class MyBooleanCellRenderer extends JCheckBox implements TableCellRenderer
{
private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
public MyBooleanCellRenderer () {
super();
setHorizontalAlignment(JLabel.CENTER);
setBorderPainted(true);
}
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());
}
setSelected((value != null && ((Boolean)value).booleanValue()));
if (hasFocus) {
setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
} else {
setBorder(noFocusBorder);
}
//si votre condition retourner un JLabel vide, sinon retourner this (JCheckbox)
if (
return new JLabel();
return this;
}
}
and add this cellrenderer to the required column
TableColumn tcol = tableDestock.getColumnModel().getColumn(0);
tcol.setCellRenderer(new MyBooleanCellRenderer ());
Subscribe to:
Posts (Atom)