이미이 항목에 대해 몇 가지 질문이 있지만 내 대답을 찾지 못했습니다. 나는 사용자가 JTextField
에 뭔가를 입력 한 코드를 작성하고 버튼을 클릭 한 후 그의 단어는 "table"이 "****"로 바뀌는 것처럼 그의 단어가 가진 문자 수와 동일한 별표 수로 대체됩니다. . 나는 이렇게했다 :ActionListener에서 변수를 보내면 다른 ActionListener에서 사용할 수 있습니다.
ask.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String guess = "";
String given = textGive.getText();
for (int i=0; i<given.length(); i++){
String asterisk = "*";
guess += asterisk;
textGive.setText(guess);
}
}
});
내가 좋은 방법으로 이것을하지 않았지만 나는 그것을 더 잘하는 방법을 몰랐다. 어떤 추천?
이제 어떻게 든 다른 ActionListener에서 액세스하여 추가 수정할 수 있도록 String, 원래 단어 및 별표를 범위 외부에 저장하고 싶습니다. 처음 쓰기 전에 ActionListener
나는 String guess = ""
과 String given = ""
을 작성했으나 아무 것도하지 않은 것으로 보입니다. 그래서, 내 두 번째 ActionListener
나는 그에게 문자열을 보내고 싶습니다 given
나는 사용자가 자신의 단어를 입력했을 때 받았습니다.
나는 내가 그것을 더 액세서하기 위해"클로징 범위에 정의 주어진 final이 아닌 지역 변수를 참조 할 수 없습니다"
guess.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String attempt = textGuess.getText(); char att = attempt.charAt(0); for (int i=0; i<5; i++){ if (given.charAt(i)==att){ textGuess.setText("Ok!"); } } } });
이클립스는 말을 나에게 오류를 제공합니다.
given
최종해야 이해하지만 어떻게 변수가 처음
ActionListener
에서 텍스트 입력에 의존하는 경우 그렇게 할 수 있나요? 이 문제에 대한 다른 해결책이 있습니까? 나는 최근에 자바를 사용하기 시작 했으므로 언어를 잘 모른다.
그냥 필드 로컬이 아닌 변수를 사용! –
처음에 무엇을 달성하고 싶습니까? 여기서 설명하는 내용은 패스워드 텍스트 필드 등을 사용하려는 것처럼 나에게 들릴 수 있습니까? –
권장 사항 중 하나 인'textGive.setText (guess);'줄은 for 루프 바깥에 있어야합니다. –