그 사이에 값을 전달하는 여러 개의 창이있는 프로그램을 작성하고 있습니다. 현재 1-99 개의 체크 박스로 구성된 프로그램의 일부를 테스트하고 있습니다. 그러나 단추를 클릭하여 상태를 확인하려고 할 때 작동하지 않습니다. 어디에 문제가 여기에있다 :CheckBox 매트릭스에 문제가 있습니다. 루프가 작동하지 않습니다.
public class asdf {
public static boolean matra[][] = new boolean[10][10];
public static void main(String arg[]) {
for(int ii=0;ii<matra.length; ii++){
for(int jj=0;jj<matra.length; jj++){
matra[ii][jj]=false;
}
}
new JFrameDemo();
}
}
다른 클래스 :
이public void actionPerformed(ActionEvent event) {
if(event.getSource() == okay) {
for(int i=0;i<box.length; i++){
for(int j=0;j<box.length; j++){
if((i==0)&&(j==0)) continue;
if(box[i][j].getState())
asdf.matra[i][j]=true;
System.out.println(box[i][j].getLabel() + " is " + asdf.matra[i][j]);
}
}
}
}
여기에 메인 클래스의
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
public class JFrameDemo extends Frame implements ActionListener, ItemListener {
Checkbox box[][] = new Checkbox[10][10];
Button okay;
JFrameDemo() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
add(makePanel());
pack();
show();
}
private Panel makePanel() {
GridBagConstraints con = new GridBagConstraints();
Panel panel = new Panel();
GridBagLayout gridbag = new GridBagLayout();
panel.setLayout(gridbag);
for(int i=0;i<box.length; i++){
for(int j=0;j<box.length; j++){
if((i==0)&&(j==0)) continue;
box[i][j] = new Checkbox(i+j*10+"");
con.gridx = i;
con.gridy = j;
panel.add(box[i][j],con);
}
}
okay = new Button("Unesi");
con.gridx = 10;
con.gridy = 10;
panel.add(okay,con);
return(panel);
}
public void actionPerformed(ActionEvent event) {
if(event.getSource() == okay) {
for(int i=0;i<box.length; i++){
for(int j=0;j<box.length; j++){
if((i==0)&&(j==0)) continue;
if(box[i][j].getState())
asdf.matra[i][j]=true;
System.out.println(box[i][j].getLabel() + " is " + asdf.matra[i][j]);
}
}
}
}
public void itemStateChanged(ItemEvent event) {
}
public void processWindowEvent(WindowEvent event) {
if(event.getID() == WindowEvent.WINDOW_CLOSING)
System.exit(0);
}
}
이 프로그램은 오류없이 실행
하지만, 콘솔 ISN ' 어떤 결과가 나옵니다. 글로벌 변수에도 값을 전달해야합니다. 중첩 된 fors에 문제가 있다고 생각합니다.
그리고 코드의 어느 부분에 문제가 있습니까? 물론 우리가 전체 코드를 건너 뛰는 것을 원하지는 않습니까? –
사실, 그것은 내가 작성한 첫 번째 코드 세그먼트입니다. Fors는 작동하지 않는 것처럼 보입니다. Checkbox 배열로 시도해 보았습니다. checkbox 행렬을 시작합니다. 그러나 ok 버튼을 클릭하고 상태를 확인해야 할 때, fors를 사용하여 모두 통과합니다. 티. –