2012-04-05 1 views
0

내가 그것을 이런 식으로 뭔가라고 생각 "입력"클릭시의 JLabel에 JTextField로에서의 setText하는 (하지만 아무것도하지 않는 밝혀!) :어떻게하는 JButton가

public void actionPerformed(ActionEvent e) { 

    String labelID = e.getActionCommand(); 
    JTextField EnterName = new JTextField(); 
    JLabel NameINLabel = new JLabel(); 
    String random = new String(); 
    random = EnterName.getText(); 

    if (labelID == "Enter Name"){ 
     NameINLabel.setText(random); 
    } 
} 

내 버튼이 완벽하게 작동 , 아무것도 그걸로 잘못되었습니다. 그러나 "Enter Name"버튼을 클릭하면 jlabel에 아무런 변화가 없습니다. HELP PLZ

+1

JTextField 및 JLabel이 이벤트 처리기 내에서 선언되는 이유는 무엇입니까? 버튼을 클릭 할 때 보이게하려고합니까? 나의 진실한 의심 : 그것이 효과가 있니? – vaisakh

+2

코드에 몇 가지 문제점이 있습니다. 1. 내용 분할 창에 JTextField 및 JLabel을 절대 추가하지 않으므로 보이지 않습니다. 2. 빈 문자열을 텍스트로 사용하여 EnterName을 작성하므로 EnterName.getText()는 항상 빈 문자열을 리턴합니다. 3. ==를 사용하여 문자열의 내용을 비교하면 안됩니다. –

+0

1) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 2) 클래스에 대한 일반적인 [Java 명명 규칙 (Java 命名 規則)] (http://java.sun.com/docs/books/books/books/jls/second_edition/html/names.doc.html#73307) (특히 이름에 사용 된 사례)을 배우십시오. , 메소드 및 속성 이름 및 일관되게 사용하십시오. –

답변

0

vaisakh에 동의합니다. 이벤트 처리기 외부에서 구성 요소를 선언해야합니다. 또한 컨텐츠 분할 창에이를 추가해야합니다. 문자열의 내용을 비교하려면 .equals("") 또는 compareTo("") 방법을 사용해야합니다.

+0

핸들러 외부에서 구성 요소를 선언했습니다. 콘텐츠 창에 추가했습니다. 나는 그 부분을 보여주지 않았다. – user1315999

관련 문제