@ camickr Thanks camickr, i done it as your way: i post below code that using my Swing application:
JPanel panel;
JLabel jl1= new JLabel("1");
JLabel jl2= new JLabel("1");
class PanelRenderer extends JPanel implements TableCellRenderer {
public PanelRenderer() {
setOpaque( true );
init();
}
private void init() {
setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0));
jl1.setFont(new Font("sansserif", Font.BOLD, 20));
jl1.setBorder(new LineBorder(Color.BLACK));
jl1.setPreferredSize(new Dimension(20, 20));
jl1.setBackground(Color.GREEN);
jl1.setOpaque(true);
add(jl1);
jl2.setFont(new Font("sansserif", Font.BOLD, 20));
jl2.setBorder(new LineBorder(Color.BLACK));
jl2.setPreferredSize(new Dimension(20, 20));
jl2.setBackground(new Color(85, 134, 235));
jl2.setOpaque(true);
add(jl2);
}
@Override
public Component getTableCellRendererComponent( JTable table, Object value, boolean
isSelected, boolean hasFocus, int row, int column ) {
if ( isSelected )
{
.....
} else
{
....
}
return this;
}
}
class PanelEditor extends DefaultCellEditor {
public PanelEditor( JTextField txt ) {
super( txt );
....
}
@Override
public Component getTableCellEditorComponent( JTable table, Object value, boolean
isSelected, int row, int column ) {
....
return panel;
}
}
.....
// load data from database with the renderer
TableCellRenderer colorRenderer = new PanelRenderer();
my_table.getColumnModel().getColumn(4).setCellRenderer(colorRenderer);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.