【发布时间】:2012-12-20 10:46:46
【问题描述】:
在这种情况下,第一个坐标应该是 0,0 而不是 8,30。我在做什么错(我正在使用 NetBeans)
import java.awt.Color;
import java.awt.Graphics;
public class TEST extends javax.swing.JFrame {
@Override
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.blue);
g.drawRect(8, 30, 200, 200);
repaint();
}}
【问题讨论】:
-
g是框架的图形上下文。现在标题栏也是框架的一部分。因此 (0,0) 表示框架的左上角,而不是您所期望的绘图区域的左上角。 -
框架的装饰占据了框架范围内的空间。不建议直接在框架上绘画 1. 您遇到此问题 2. 框架包含其他组件(内容窗格、菜单、图层和玻璃窗格)。查看this 了解更多信息。您应该使用自定义组件(如
JPanel)并将其添加到内容窗格或用它替换框架的内容窗格。
标签: java swing jframe paintcomponent