2013-07-15 5 views
0

사용자의 요청이 필요한 하나의 응용 프로그램을 빌드하고 있습니다. 응용 프로그램의 첫 번째 버전은 하나의 입력 창을 직접 만들었지 만 JOptionFrame의 미리 성형 된 도구이기 때문에 showInputDialog에 대한 더 나은 변경을 발견했습니다. 이제 이벤트 트리거에 문제가 있습니다. 아래의 코드를 체크 아웃 :showInputDialog를 통한 이벤트 호출

SearchScreen :

public class SearchScreen extends EventSearch{ 
    ... 
    public SearchScreen(){ 
     userQuery = (String) JOptionPane.showInputDialog("Type Keywords in english to be requested below:");  
    } 
    ... 
} 

EventSearch :

public class EventSearch extends TabBuilder{ 

    public EventSearch() { 

    } 

    public void actionPerformed(ActionEvent Ev) { 
     try { 
      System.out.println("worked"); 
     } catch (IOException e1) { 
      e1.printStackTrace(); //print failure 
      JOptionPane.showMessageDialog(null, "FAIL"); 
     } 
    }; 
} 

TabBuilder :

public class TabBuilder implements ActionListener { 
    ..... 
} 

그럼 내가 통해 이벤트를 호출 할 수 있겠 방법 문의 showInputDialog? 그것은 가능한가? 누가 청취자가 될까요?

public SearchScreen(){ 

     userQuery = (String) JOptionPane.showInputDialog("Type Keywords in english to be requested below:"); 

      try { 

       //Your Action with the String 

      } catch (IOException e1) { 

       e1.printStackTrace(); //print failure 
        JOptionPane.showMessageDialog(null, "FAILURE"); 
      } 

    } 
+2

하십시오 왜 ISN '대신 할 것이 낫다, 그 사실은 코드에서 이벤트 검색 클래스를 수행하고이 같은 하나 개의 동작에 방아쇠를 당길 - 미리 감사는 – mKorbel

+0

@mKorbel 내 실수, 나는 테스트 버전 코드 –

+1

에 왜 여기에 이벤트 처리를 추가하는지 모르겠지만이 시나리오에서는 아무 쓸모가 없다고 생각합니다. ** userQuery **가 inputDialog var가 null이거나 비어 있는지 확인할 수 있습니다. 그런 다음 o를 진행합니다. n에 몇 가지 메소드가 포함되어 있습니다 .. 그리고 JOptionPane 클래스를 더 공부하여 맞춤 설정을 추가하는 것이 좋습니다 – Dreamer

답변

0

나는 내 자신의 대답을 발견 거기에 어떤 부모 ->`JOptionPane.showInputDialog (null, ...`, 더 나은 도움을 더 빨리 [SSCCE] (http://sscce.org/), 짧고, 실행 가능한, 컴파일 가능한
+0

실제로 showInputDialog (...) 메서드를 사용하면'String' , 그래서 그것을 다시 String 형으로 캐스팅 할 필요가 없습니다 :-) –

+1

@nIcEcOw 저는 이것을 압니다. 그러나 저는 그것을 포기하라고 말한 일식에 대해 능통하게되었습니다. 왜 그런지 모르겠습니다. –