📄 indicatorcellrenderer.java
字号:
/* (swing1.1) */package jp.gr.java_conf.tame.swing.table;import java.util.*;import java.awt.*;import javax.swing.*;import javax.swing.table.*;/** * @version 1.0 03/03/99 */public class IndicatorCellRenderer extends JProgressBar implements TableCellRenderer { private Hashtable limitColors; private int[] limitValues; public IndicatorCellRenderer() { super(JProgressBar.HORIZONTAL); setBorderPainted(false); } public IndicatorCellRenderer(int min, int max) { super(JProgressBar.HORIZONTAL, min, max); setBorderPainted(false); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { int n = 0; if (! (value instanceof Number)) { String str; if (value instanceof String) { str = (String)value; } else { str = value.toString(); } try { n = Integer.valueOf(str).intValue(); } catch (NumberFormatException ex) { } } else { n = ((Number)value).intValue(); } Color color = getColor(n); if (color != null) { setForeground(color); } setValue(n); return this; } public void setLimits(Hashtable limitColors) { this.limitColors = limitColors; int i=0; int n = limitColors.size(); limitValues = new int[n]; Enumeration enum = limitColors.keys(); while (enum.hasMoreElements()) { limitValues[i++] = ((Integer)enum.nextElement()).intValue(); } sort(limitValues); } private Color getColor(int value) { Color color = null; if (limitValues != null) { int i; for (i=0;i<limitValues.length;i++) { if (limitValues[i] < value) { color = (Color)limitColors.get(new Integer(limitValues[i])); } } } return color; } private void sort(int[] a) { int n = a.length; for (int i=0; i<n-1; i++) { int k = i; for (int j=i+1; j<n; j++) { if (a[j] < a[k]) { k = j; } } int tmp = a[i]; a[i] = a[k]; a[k] = tmp; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -