문제

편집 : 몇 가지 문제를 해결 한 후, 내가 사용하는 더 큰 문제는 내가 사용하는 Apache Poi에 의해 발생하는 것입니다. 나는 지금 그것을 알아 내기 위해 노력하고 있습니다. 분명히 그것은 샌드 박스에 의해 제한되고 있습니다.

나는 스윙을 처음 접했고 웹 시작을 통해 실행 해야하는 작은 스윙 앱을 만들었습니다. FileOpenservice를 사용하고 텍스트 디스플레이를 업데이트하려고합니다. FileOpenservice 대화 상자가 나타나지 않으며 텍스트 표시가 업데이트되지 않기 때문에 스레딩 문제가 발생한다고 생각합니다.

나는 그들이 지금과 다른 일을하는 곳을 찾을 수 없습니다.

아이디어?

감사!

편집 : 이제 FileOpenService 대화 상자가 나타납니다. 나는 내 메인을 이것으로 바꿨다 :

public static void main(String[] args) throws Exception {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new MainFrame();
        }
    });
}

그러나 여전히 디스플레이를 업데이트 할 수 없습니다. 여기에서 업데이트를하는 곳입니다.

 Runnable r = new Runnable() {
        public void run() {
            for (final String s : Logger.getMessages())
                append(s + "\n");
        }
    };

    try {
        if (SwingUtilities.isEventDispatchThread())
            r.run();
        else
            SwingUtilities.invokeAndWait(r);
    } 

그리고 내 부속 방법 :

private void append(Color c, String s) {// throws Exception {
    StyleContext sc = StyleContext.getDefaultStyleContext();
    AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY,
            StyleConstants.Foreground, c);
    int len = _textPaneLog.getDocument().getLength();
    try {
        _textPaneLog.getDocument().insertString(len, s, aset);
    } catch (BadLocationException e) {
        e.printStackTrace();
    }
}
도움이 되었습니까?

해결책 2

내가 한 문제는 이것과 관련이 없었습니다. 내가 이것을하려고했던 곳 근처의 코드의 다른 부분에서, 나는 신청서 종료를 일으켰다. 내가 이것을 구현하기 위해 노력할 때 놓친 다른 것들로부터 보류 한 것이 었습니다.

다른 팁

당신은 *.openfiledialog (foo, bar)를 호출하고 있습니다.

FileOpenService fos = (FileOpenService)ServiceManager.lookup("javax.jnlp.FileOpenService");

FileContents fc = fos.openFileDialog(null, null);

이것이 바보 같은 질문이라면 죄송하지만 소스로 질문을 업데이트 할 때까지 다른 것을 생각할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top