2009-11-24 8 views
3

Java AWT FileDialog를 사용하려고하는데 기본 Java Dialog 아이콘을 다른 것으로 바꾸려고합니다.Java AWT FileDialog setIconImage 메서드가 아이콘을 설정하지 못하는 이유는 무엇입니까?

나는 프레임의 아이콘을 설정, 프레임, 포장, 이미지를 읽기의 FileDialog 포장의 다른 방법 등 여러 가지 변화를 시도했습니다
Frame frame = new Frame(); 
Image image = ImageIO.read(new URL("file:/path/to/myfile.jpg")); 
FileDialog fileDialog = new FileDialog(frame, "Save As", FileDialog.SAVE); 

fileDialog.setIconImage(image); 
fileDialog.setDirectory("/path/to/directory"); 
fileDialog.setFile("filename.txt"); 

fileDialog.setVisible(true); 

등 : 즉, 코드는 다음과 같이 보입니다 그러나, 내가 시도하는 것에 관계없이 FileDialog 아이콘은 절대로 바뀌지 않습니다. 프레임의 아이콘을 설정하고 프레임을 표시로 설정하면 프레임에 올바른 아이콘이 표시되지만 FileDialog에는 표시되지 않습니다.

의견이 있으십니까?

+0

JFileChooser를 사용하여 상위 JFrame에 아이콘을 설정하거나 하위 클래스를 만들고 createDialog()를 재정의합니다. 해결 방법은 여기에 제안 : http://stackoverflow.com/questions/6994772/how-to-change-default-java-icon-in-jfilechooser – xorcus

답변

1

모든 플랫폼에서 가능하지는 않습니다. 나는 FileDialog가 OS에 의해 제공되는 filedialog를 어떻게 든 사용한다고 추측한다. 그리고 그것이 아이콘을 지원하지 않는다면 당신은 운이 없다.

+0

나는 귀하의 의견이 올바른 방향으로 가고 있다고 생각합니다. 방금 체크했는데 Windows의 FileDialogs는 아이콘이 기본값이 아닙니다. 왜 그들은 세계에서 솔라리스의 Java 아이콘으로 기본 설정되어 있습니까? (그리고 상당히 실망 스럽습니다.) 의견을 보내 주셔서 감사합니다! – Adam

2

AWT 구성 요소 인 FileDialog는 로컬 플랫폼과 더 관련이 있습니다. 솔라리스의 경우에는 앱 자체를 시작한 자바 실행 파일에서 아이콘을 가져 오는 것이 가능합니다.

JFileChooser를 사용할 수없는 이유가 있습니까?

+0

응용 프로그램은 실제로 SWT에 리치 클라이언트 플랫폼 응용 프로그램으로 작성됩니다. 유감스럽게도 SWT 파일 대화 상자는 기본 파일 시스템에 대한 사용자 정의 할 수없는 액세스를 제공합니다 (사용자가 할 수있는 파일 저장/열기 - 파일 및 디렉토리 삭제 기능을 제공 할 수 없습니다). 따라서 SWT에서 직접 파일 대화 상자를 만들거나 AWT 파일 대화 상자를 사용하는 옵션이 제공됩니다. JFileChooser를 사용하면 (자), 네이티브의 Look & Feel를 잃어 버립니다. 그것은 짜증나는 역설이지만 그것이 그 것이다. – Adam