⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 barrenderer.java

📁 全面实现ilog地功能,没有使用第三方lib.
💻 JAVA
字号:
/* * This source code is part of TWaver 1.3.1 * * SERVA Software PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * Copyright 2000-2005 SERVA Software, Inc. All rights reserved. */package demo.sheet.dynamicbean;

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.table.TableCellRenderer;

import twaver.TWaverUtil;


public class BarRenderer extends JComponent implements TableCellRenderer{
	
	protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); 
	protected static Border focusBorder = UIManager.getBorder("Table.focusCellHighlightBorder");
	
	private boolean hasFocus;
	private double proportion;
	private Color color;
	
	public BarRenderer(){
		color = Color.RED;
	}
	
	public BarRenderer(Color color){
		this.color = color;
	}
	
    public void paintComponent(Graphics g) {
    	super.paintComponent(g);
    	if(hasFocus){
    		this.setBorder(focusBorder);
    	}else{
    		this.setBorder(noFocusBorder);
    	}
    	Dimension size = this.getSize();
    	
    	Graphics2D g2 = (Graphics2D) g;
    	g2.setColor(Color.white);
    	g2.fillRect(0, 0, size.width, size.height);
    	
    	g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        GradientPaint gp = new GradientPaint(0, 0, Color.WHITE, size.width, 0, this.color, true);
        g2.setPaint(gp);
        g2.fillRect(0, 0, (int)(size.width * proportion), size.height);
        
        // draw text
        String text = proportion + "%";
        g2.setColor(Color.BLUE);
        Font font = TWaverUtil.getFont(Font.ITALIC, 12);
        g2.setFont(font);
    	Dimension textSize = TWaverUtil.getTextSize(text, font, g2);
    	int x = (size.width - textSize.width)/ 2;
    	int y = TWaverUtil.getTextOffset(text, font, g2);
    	g2.drawString(text, x, y);
    }
    
	public Component getTableCellRendererComponent(JTable table, Object value, 
			boolean isSelected, boolean hasFocus, int row, int column) {
		this.hasFocus = hasFocus;
		if(value instanceof Number){
			proportion = ((Number)value).doubleValue();
		}else{
			proportion = 0;
		}
        this.setToolTipText(proportion + "");
		return this;
	}
}

⌨️ 快捷键说明

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