나는 스윙을 배우려고 노력 중이며 (다른 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);
}
당신이 그것을 실행하면 윈도우의 크기를 볼 수 있습니다 :
여기 내 코드입니다. 코드에 쓰여진대로 400x400 대신 362x384가됩니다. 내가 500에 의해 500 크기를 변경하는 경우
, 윈도우가 484
Q에 의해 462있을 것입니다 : 왜 38과 16로 떨어져 치수는? 프레임의 크기는 타이틀 바와 테두리를 포함하므로
자바는 테두리에 인세 트를 추가합니다. http://stackoverflow.com/questions/2451252/swing-set-jframe-content-area-size – blueygh2