현재 내가 화면에 확인란을 추가 할 수있는 곳에서 문제가 발생하고 클릭 할 때 필요에 따라 상태가 바뀌지 만 선택 데이터를 사용하여 작업 할 때, true 또는 false인지 여부에 관계없이 항상 원래 값을 반환합니다.JCheckBox는 항상 참/거짓을 반환하지만 변경하지 않음
내 첫 번째 코드 조각은 isSelected(); 매 틱마다 지속적으로 실행되는 if 문 내에서 그런 다음 검사 코드는 다음과 같습니다
SVelRand = new JCheckBox("Random", true);
SVelRand.setBounds(50, 30, 90, 20);
:
boolean sel = SVelRand.isSelected();
if(sel){
System.out.print("Selected");
}else{
System.out.print("Not Selected");
}
내가 찾은이 내가 만들 경우 아래 항목 리스너를 구현하기 위해 노력 작동하지 않았다 때 SVelRand 내가 사용하여 만든 내 체크 박스입니다 jcheckbox하지만 여전히 초기 값 세트를 계속 반환합니다.
SVelRand.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
System.out.println(SVelRand.isSelected());
}
});
나는 또한 어떤 베어링을 가지고 넣다 프레임에 추가하기 전에 동일 패널 (Panel)에 라벨과 JTextField를 그리기입니다. 그리고 레이아웃이 아닌 setBounds를 사용하는 이유는 비표준 레이아웃을 얻기 위해 정확한 위치에 각 구성 요소를 추가 할 수 있기 때문입니다.
도움이 될 것입니다. 당신은 기본적으로 선택으로 당신의 체크 박스를 시작하는 경우 액션 리스너 함수에서
덕분에 toggleState의 초기 값을 변경 힙, 그 위대한 지금 일하고있다. 아직도 내장 된 방법이 작동하지 않았지만이 방법을 계속 사용하려고하는 이유를 혼란스럽게합니다. – user1690395
필드가 필요한 이유는 무엇입니까? 불필요한 복잡성이 추가되고 있습니다. ItemEvent 객체가 보유하고있는 상태를 점검해야하는 이유는 무엇인가? 'if (e.getStateChange() == ItemEvent.SELECTED)'만 있으면됩니다. –