1 | /**
|
---|
2 | * @(#)BarRenderer.java 12/12/99
|
---|
3 | * @author Peter Au
|
---|
4 | * All rights reserved.
|
---|
5 | */
|
---|
6 |
|
---|
7 | package vishnu.testvis.treemap.table;
|
---|
8 |
|
---|
9 | import java.awt.*;
|
---|
10 | import javax.swing.*;
|
---|
11 | import javax.swing.table.TableCellRenderer;
|
---|
12 |
|
---|
13 | //!!! the % in getString and getColor may WRONG !!!
|
---|
14 |
|
---|
15 | public class BarRenderer extends JProgressBar implements TableCellRenderer
|
---|
16 | {
|
---|
17 |
|
---|
18 | public BarRenderer(){
|
---|
19 | super(JProgressBar.HORIZONTAL);
|
---|
20 | setBorderPainted(false);
|
---|
21 | this.setFont(new Font("Arial",Font.PLAIN,9));
|
---|
22 | }
|
---|
23 |
|
---|
24 |
|
---|
25 | public BarRenderer(int min, int max){
|
---|
26 | super(min,max);
|
---|
27 | setBorderPainted(false);
|
---|
28 | this.setFont(new Font("Arial",Font.PLAIN,9));
|
---|
29 | }
|
---|
30 |
|
---|
31 | public String getString(){
|
---|
32 | if (getValue()==0) return "";
|
---|
33 | else return String.valueOf(getValue())+"%";
|
---|
34 | }
|
---|
35 |
|
---|
36 | public Component getTableCellRendererComponent(JTable table, Object value,
|
---|
37 | boolean isSelected, boolean hasFocus, int row, int column){
|
---|
38 | int n = 0;
|
---|
39 | if (value instanceof Number){
|
---|
40 | n = ((Number) value).intValue();
|
---|
41 | } else{
|
---|
42 | System.err.println("Error - item in bar render is not a number");
|
---|
43 | }
|
---|
44 | setValue(n);
|
---|
45 | setForeground(getColor(n));
|
---|
46 | return this;
|
---|
47 | }
|
---|
48 |
|
---|
49 | private Color getColor(int value){
|
---|
50 | if (value < 40) return Color.green;
|
---|
51 | else if (value <80) return Color.yellow;
|
---|
52 | else
|
---|
53 | return Color.red;
|
---|
54 | }
|
---|
55 |
|
---|
56 | }
|
---|