您好我正在尝试Java
使用paintComponent
和Graphics
对象做一些绘图示例。我需要一个固定尺寸的“舞台”(400x300)用于绘图和window/frame
“围绕它”。
这是我的设置:
public class MyJFrame extends JFrame{
public MyJFrame(){
//setSize(new Dimension(400,300));
setBackground(Color.green);
Stage stage = new Stage();
add(stage);
this.pack();
this.setResizable(false);
this.setVisible(true);
System.out.println(this.size());
System.out.println(stage.size());
}
}
public class Stage extends JPanel {
public Stage(){
setPreferredSize(new Dimension(400,300));
//setSize(new Dimension(400,300));
}
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, 400, 300);
}
}
打印出来的是:
java.awt.Dimension[width=416,height=338]
java.awt.Dimension[width=400,height=300]
但结果如下所示:
黑色部分是400x300 .. 不知道这个额外的间距是从哪里来的。
我尝试了几种setSize
setPreferredSize
布局和布局..但没有任何效果。
PS那里有任何java小提琴吗?