나는 피곤했지만, 아래의 코드에서 거의 마지막 세 줄에 멈추기 만하면 내 tictactoe 패널에서 "새로 고침"버튼을 만들 수있다. 레이아웃 관리자를 단일 컨테이너에 혼합합니다.gridlayout과 borderlayout을 섞음
하지만 작동했습니다.
ButtonPanel.setLayout(new GridLayout(3, 3));
guiFrame.add(ButtonPanel);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
button[i][j] = addButton(ButtonPanel, i, j);
}
}
JButton refreshbutton = new JButton("Refresh");
guiFrame.add(refreshbutton, BorderLayout.SOUTH); // ... border layout worked. Hm.
refreshbutton.addActionListener(this);
guiFrame.setVisible(true); }
놀랄까요? (마음에 내 newbieness을 유지합니다.)
(BOY을, 나는이 바보 게임의 프로그램을 작성에 분차 물건에 걸려 넘어/배웠습니까! - 예를 들어, 내부적으로 각 버튼을 setActionCommand
에 "라벨"을 사용하여 [ 11,12,13,21로 ... 33] 그래서 ONE actionPerformed
방법은 제대로의는 그것이 돌려 누구에 의해 추진되었다 어떤 버튼 X 또는 O]와 [레이블을 getActionCommand
을 사용할 수 있습니다.)
변수 이름은 대문자로 시작하면 안됩니다. 'ButtonPanel'은'buttonPanel'이어야합니다. – camickr
또한 나중에 BorderLayout.SOUTH를 BorderLayout.PAGE_END로 참조하십시오. JDK 1.4 이후로 후자를 선호하기 때문에 :-) [BorderLayout Tutorials] (http : // docs. __Launch Button 바로 아래 : -) __ 또한 guiFrame.pack()을 visible로 설정하기 직전과 모든 컴포넌트를 추가 한 후에 실패했습니다 스윙에서 코딩 할 때, 많은 경우에 불쾌한 행동으로 이어지는 아주 일반적인 실수입니다. __ (작은 공간에서 딱딱하게 말하기) : –