2016-05-31 9 views
0

Rhino JS를 통해 Java를 스크립팅하여 Swing 응용 프로그램을 만들고 있습니다. 내가 JMenuItemopen 내가 을 설정해야 JFileChooser 대화 상자가 나타나야하고, 그 결과로 작업 할 수 있습니다. openJMenuItem 클릭 이제JFileChooser가 표시되지만 비어있는 이유는 무엇입니까?

open.addActionListener(function(event) { 
    var fileChooser = new JFileChooser() 
    fileChooser.setDialogType(JFileChooser.OPEN_DIALOG) 

    print(SwingUtilities.isEventDispatchThread()) // Prints true 

    var result = fileChooser.showOpenDialog(frame) // frame is a closure variable 

    if(result === JFileChooser.APPROVE_OPTION) { 
     print("You have chosen a file!") 
    } 
    }) 

, 올바르게 이벤트가 발생하고, JFileChooser는 열리지 않습니다 만, 아래 스크린 샷에서 볼 수 있듯이 완전히 비어 : 다음 JFileChooser하기 위해 사용되는 코드는

이전에 경험 한 사람이 있습니까? 어떤 아이디어? 필요한 경우 기꺼이 자세한 정보를 제공합니다. enter image description here

@Antoniossss 언급했듯이 JFileChooser 크기를 조정하면 임의의 검은 색 영역이 발생합니다. enter image description here

+0

* 프레임은 클로저 변수입니다. * 이것이 무엇을 의미하는지 모르겠으나 인수 대신 null을 사용하여 동일한 작업이 수행되는지 확인할 수 있습니까? – Compass

+0

@Compass> 글쎄, 그것은 루트'JFrame'을 의미하지만,이 코드가 포함되어있는 함수에 전달되므로 익명 함수가이를 참조 할 수 있습니다. 나는 당신의 제안을 시도했지만 변화가 없었다. : – Miguel

+0

팝업 후 GUI가 반응합니까? 즉, 크기를 조정하거나 이동하거나 대화 상자를 닫을 수 있습니까? 내부 이벤트 루프가 실행되지 않는 것 같습니다. 이유는 확실하지 않습니다. – Antoniossss

답변

0

해결책을 찾았습니다. Rhino를 호출하는 명령 행에서 나는 -Dsun.java2d.opengl=true을 가졌습니다. 이것은 오래된 프로젝트에서 남겨져 내 시스템에서 무언가와 충돌을 일으키는 것처럼 보였습니다. 제거하면 문제가 해결되었습니다. 저를 올바른 방향으로 안내 해주신 @Antoniossss에게 많은 감사를드립니다!

+0

그건 내가 결코 생각해 내지 못한 것입니다.) g2k 완료되었습니다. – Antoniossss