展开全部
有两种改法:
第一种你这样的覆盖 paint 方法的话,需要自己来画e69da5e6ba9062616964757a686964616f31333335333736边框,甚至还要处理皮肤效果相关的参数,否则在其它像 Linux 操作系统上看起来就很怪异的。
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
Stroke dash = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 3f, new float[] { 1, 2 }, 0f);
g2.setStroke(dash);
g2.setColor(new Color(188, 188, 188));
g2.drawLine(0, 100, 500, 100);
g2.drawLine(0, 200, 500, 200);
g2.drawLine(0, 300, 500, 300);
g2.drawLine(0, 400, 500, 400);
g2.drawLine(100, 0, 100, 500);
g2.drawLine(200, 0, 200, 500);
g2.drawLine(300, 0, 300, 500);
g2.drawLine(400, 0, 400, 500);
getBorder().paintBorder(this, g2, 0, 0, this.getWidth(), this.getHeight());
}
还有一种也是推荐的做法是覆盖 paintComponent 这样边框就不是我们的职责了。public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
Stroke dash = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 3f, new float[] { 1, 2 }, 0f);
g2.setStroke(dash);
g2.setColor(new Color(188, 188, 188));
g2.drawLine(0, 100, 500, 100);
g2.drawLine(0, 200, 500, 200);
g2.drawLine(0, 300, 500, 300);
g2.drawLine(0, 400, 500, 400);
g2.drawLine(100, 0, 100, 500);
g2.drawLine(200, 0, 200, 500);
g2.drawLine(300, 0, 300, 500);
g2.drawLine(400, 0, 400, 500);
}