2009-04-17 2 views
18

현재 JFileChooser를 사용하는 작은 애플릿을 약간 변경해 달라는 요청을 받았습니다.
주요 불만 사항 중 하나는 파일 선택자가 네이티브 위젯과 다르게 동작하기 때문에 특히 루트 수준까지 탐색하기 때문에 엉덩이에 통증이 있다는 것입니다.JFileChooser의 대안

그래서 다른 모든 문제 JFileChooser (Windows의 zip 파일 캐싱과 같은 문제)를 알고 있으면 실용적인 대안이 자바 환경에 존재하는지 궁금합니다.

물론 네이티브 위젯을 사용하는 SWT가 있지만 애플릿 크기를 25만큼 늘리는 것은 실제로 옵션이 아닙니다. 그래서, 거기에 파일 선택기의 더 나은 순수 자바 구현은 무엇입니까?

+0

표준 Windows 열기 대화 상자를 열고 대화 상자 형식으로 저장할 수있는 방법이 있습니다. 나는 그걸하는 법을 기억하지 못합니다. –

답변

5

XFileDialog도 시도 할 수 있습니다. 아직 많이 시도하지는 않았지만 평가할만한 가치가 있습니다.

+0

와우, 내가 찾고 있던 것처럼 보입니다. 감사! – gizmo

+4

꽤 멋지지만 Windows 전용이며 JNI를 사용합니다. 교차 플랫폼 대안이 있습니까? – sworisbreathing

12

AWT FileDialog은 실제로 네이티브 구성 요소를 사용하지만 대부분의 AWT 및 스윙 문제와 마찬가지로 Swing의 JFileChooser보다 유연성이 낮고 사용자 지정이 쉽지 않습니다. 그래서 절충점이 있습니다 : JFileChooser에는 깔끔한 사용자 인터페이스가 있지만 대개의 경우 더 좋습니다. 그래도 대화 상자를 선택하는 대화 상자가 원래 대화 상자처럼 보이고 싶다면 FileDialog을 사용할 수 있습니다.

0

마찬가지로 @htw는 모양과 느낌이 주된 관심사 인 경우 FileDialog을 사용하십시오. FileDialog을 사용하면 사용할 수없는 편리한 방법이 많이 있다는 사실을 알고 있어야합니다.

VFSJFileChooser 몇 번 사용했습니다. JFileChooser 버그 (Zip 파일, 윈도우로 인해로드가 느려지는) 버그는 발생하지 않지만 인터페이스는 "기본"이 아닙니다.

6

조금 늦었지만 다른 사용자에게 도움이 될 수 있습니다. 당신은 OS의 UI에 응용 프로그램의 UI를 사용자 정의 할 수 있습니다 : 가능하면

try { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    } catch (Exception e) {e.printStackTrace();  } 
+2

저는 꽤 늦었지만 꽤 좋은 일을하는 동안 시스템 룩앤필을 사용하는 OS X의 JFileChooser는 기본 대화 상자를 연상케하지 않습니다. – sbook

+0

Java에서 열린 창을 열고 파일 대화 상자 창을 저장하는 방법이 있습니까? 나는 그것이 어떻게 행해졌는지 기억할 수 없다. –

2

나는 자바 FX '파일 선택 주위에 wrapper을 썼다. 응용 프로그램에 포함 된 경우, 그런 다음 네이티브 (현대) 기본이되는 플랫폼의 파일 선택기를 사용합니다

JFileChooser fileChooser = new NativeJFileChooser(); 

JFileChooser fileChooser = new JFileChooser(); 

을 대체 할 수 있습니다. 모든 것이 100 % 동일하게 작동하는 것은 아니므로 나중에 테스트 해보십시오. 그러나 대부분의 작업은 순조롭게 진행되어야합니다.

+1

고마워요 @Veluria! 내 초기 테스트는 훌륭합니다. 모든 응용 프로그램이 할 수있는 것처럼 OS 대화 상자를 사용하고 잘 작동하는 것 같습니다 (OSX 및 Win10 확인) –