파일 복사 진행 상황을 보여주는 대화 상자를 만들고 있습니다. 내가 원하는 것은 대화 상자의 아이콘 이미지를 완전히 제거하는 것입니다.JDialog에서 아이콘을 완전히 제거하는 방법은 무엇입니까?
I는 다음과 같이 JDialog
의 생성자에 대한 인수로 FrameView
의 응용 프로그램의 인스턴스를 제공하기 전에 대화 상자 같은 종류를 만들어 : 내가 볼 수
public class MyAppView extends FrameView {
// ...
@Action
public void showOptionsDialog() {
// Creating modal options' dialog
JDialog optionsDialog = new JDialog(this, true);
// ...
}
}
그래서, 내를 만들기 위해 부모 구성 요소가 필요합니다 대화 상자에 아이콘이 없습니다. 내 현재의 경우 (부모 프레임 뷰가 없을 때) 나는 다음과 같은 해킹 방법을 투명 아이콘으로 설정했지만 예상대로 작동하지 않습니다. 대화 상자의 제목 표시 줄에있는 아이콘의 빈 영역을 볼 수 있습니다. 최악의 경우)이 영역을 클릭하면 팝업 창이 나타납니다.
JFrame dummyFrame = new JFrame();
Image icon = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE);
dummyFrame.setIconImage(icon);
JDialog myDialog = new JDialog(dummyFrame, true);
어쨌든 아이콘을 제거 할 수 있어야합니다. 실무 예제는 JOptionPane입니다 :
하나의 부모 구성 요소가null
로 설정되어있을 때 통화에 대한 부모를 가져 오는 데 사용되는 정적
Frame JOptionPane.getRootFrame()
을 찾을 수 있습니다
JOptionPane
의 소스 코드를 보면
JOptionPane.showMessage(null, "My message");
:
public static Frame getRootFrame() throws HeadlessException {
Frame sharedFrame =
(Frame)SwingUtilities.appContextGet(sharedFrameKey);
if (sharedFrame == null) {
sharedFrame = SwingUtilities.getSharedOwnerFrame();
SwingUtilities.appContextPut(sharedFrameKey, sharedFrame);
}
return sharedFrame;
}
따라서 다음과 같이 대화 상자를 만들려고했습니다.
JDialog myDialog = new JDialog(JOptionPane.getRootFrame(), true);
그러나 아직 성공하지 못했습니다. 이 코드 스 니펫을 적용하려고하면 표준 자바 아이콘이 나타납니다.
그리고 내 질문은 : 내가 뭘 잘못하고있는거야? JDialog
의 아이콘을 완전히 제거하는 방법은 JOptionPane
입니까?
P. 나는 JDK6을 사용한다.
이 대화 상자의 제목은 제목 표시 줄의 왼쪽에 정렬되어 있습니까?왼쪽에는 투명 16x16 아이콘이있는 것처럼 보이므로 제목이 아이콘 너비만큼 오른쪽으로 이동하는 것처럼 보입니다. 'setFocusableWindowState (false)'는 제목 표시 줄을 그리기 때문에 원하지 않는 동작이 발생합니다. 'JOptionPane'의 대화 상자를 살펴보십시오. 원하는대로 나타납니다. – Ezze
그럼 내 대답은 도움이되지 않습니다. setDecorated (false) 게다가 제목 표시 줄을 그리기 나는 다른 줄에 대답을 생각합니다. –