我正在學習Swing並製作了一個面板(來自其他StackOverflow代碼的幫助)。我在框架上添加了棋盤格設計,但是我發現框架並不像應該那樣大。爲什麼我的JPanel比它應該小?
這裏是我的代碼:
@Override
protected void paintComponent(Graphics g) {
int width = getWidth(), height = getHeight();
g.clearRect(0, 0, width, height);
g.setColor(Color.BLACK);
for (int i=0;i<=width;i+=50) {
g.drawLine(0,i,width,i);
}
for (int i=0;i<=height;i+=50) {
g.drawLine(i,0,i,height);
}
label.setText("H = "+ getHeight() +" W = "+ getWidth()); // check actual size
add(label);
}
private void gui(Pan window) {
frame = new JFrame();
Container container = frame.getContentPane();
container.add(window);
frame.setSize(400, 400); // size written here
frame.setVisible(true);
}
如果你運行它,你會看到窗口的大小。這將是364乘384,而不是代碼中寫的400乘400。
如果我通過500更改尺寸爲500,該窗口將是462 484
問:爲什麼是38和16關的尺寸?
Java爲邊界添加了插入。請參閱http://stackoverflow.com/questions/2451252/swing-set-jframe-content-area-size – blueygh2