📄 edgedborder.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 + -