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

📄 edgedborder.java

📁 一个简易的java画图软件
💻 JAVA
字号:
package app.pane;

import java.awt.*;
import javax.swing.border.*;

/**
 * 提供了一个自定义的边框
 * 
 * @author Thihy
 * 
 */
public class EdgedBorder implements Border {

	public EdgedBorder(Color edgeColor) {
		this.edgeColor = edgeColor;
	}

	public void setShadowColors(Color lightShadow, Color darkShadow) {
		this.lightShadow = lightShadow;
		this.darkShadow = darkShadow;
	}

	@Override
	public Insets getBorderInsets(Component c) {
		return new Insets(BORDER_PAD, BORDER_PAD, BORDER_PAD, BORDER_PAD);
	}

	@Override
	public boolean isBorderOpaque() {
		return true;
	}

	@Override
	public void paintBorder(Component c, Graphics g, int x, int y, int width,
			int height) {
		Color saveColor = g.getColor();
		int totalBorder = 2 * BORDER_PAD;

		if (edgeColor == null) {
			edgeColor = c.getBackground();
			lightShadow = null;
			darkShadow = null;
		}

		if (lightShadow == null) {
			lightShadow = edgeColor.brighter();
			darkShadow = edgeColor.darker();
		}

		g.setColor(edgeColor);
		g.fillRect(x, y, width, BORDER_PAD);
		g.fillRect(x, y + height - BORDER_PAD, width, BORDER_PAD);
		g.fillRect(x, y + BORDER_PAD, BORDER_PAD, height - totalBorder);
		g.fillRect(x + width - BORDER_PAD, y + BORDER_PAD, BORDER_PAD, height
				- totalBorder);

		g.setColor(lightShadow);
		g.drawRect(x + OUTER_PAD + 1, y + OUTER_PAD + 1, width - 2 * OUTER_PAD
				- 1, height - 2 * OUTER_PAD - 1);
		g.setColor(darkShadow);
		g.drawRect(x + OUTER_PAD, y + OUTER_PAD, width - 2 * OUTER_PAD - 1,
				height - 2 * OUTER_PAD - 1);

		g.setColor(saveColor);
	}

	private Color edgeColor;
	private Color lightShadow;
	private Color darkShadow;

	private static final int OUTER_PAD = 2;
	private static final int BORDER_SIZE = 2;
	private static final int INNER_PAD = 2;
	private static final int BORDER_PAD = OUTER_PAD + BORDER_SIZE + INNER_PAD;
}

⌨️ 快捷键说明

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