combotablecellrenderer.java

来自「The Definitive Guide to Java Swing, Thir」· Java 代码 · 共 38 行

JAVA
38
字号
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public class ComboTableCellRenderer
    implements ListCellRenderer, TableCellRenderer {
  DefaultListCellRenderer listRenderer = new DefaultListCellRenderer();
  DefaultTableCellRenderer tableRenderer = new DefaultTableCellRenderer();

  private void configureRenderer(JLabel renderer, Object value) {
    if ((value != null) && (value instanceof Color)) {
      renderer.setIcon(new DiamondIcon((Color)value));
      renderer.setText("");
    } else {
      renderer.setIcon(null);
      renderer.setText((String)value);
    }
  }

  public Component getListCellRendererComponent(JList list, Object value,
      int index, boolean isSelected, boolean cellHasFocus) {
    listRenderer =
      (DefaultListCellRenderer)listRenderer.getListCellRendererComponent(
        list, value, index, isSelected, cellHasFocus);
    configureRenderer(listRenderer, value);
    return listRenderer;
  }

  public Component getTableCellRendererComponent(JTable table, Object value,
      boolean isSelected, boolean hasFocus, int row, int column) {
    tableRenderer =
      (DefaultTableCellRenderer)tableRenderer.getTableCellRendererComponent(
        table, value, isSelected, hasFocus, row, column);
    configureRenderer(tableRenderer, value);
    return tableRenderer;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?