게시물에이어서 Showing JDialog in taskbar not working과 Show JDialog on taskbar 작업 표시 줄에 JDialog를 표시하려고했습니다. 그것이 효과가 있지만, 그 행동은 이상하고 좋지 않습니다.작업 표시 줄에 JDialog가 잘 보이지 않습니다.
그래서 작업 표시 줄에 단추가 표시되지만이를 클릭하면 작은 바탕 화면이 바탕 화면 왼쪽 상단에 나타납니다. 이 창은 너무 작아 내용이 보이지 않습니다. 확대하면 비어있는 것을 볼 수 있습니다. 내 JDialog는이 창을 닫은 후에 만 나타납니다.
이 창을 없애거나 내 JDialog를 포함 할 수있는 방법이 있습니까?
public class SelectionDialog extends JDialog{
private static final long serialVersionUID = 5677381647525913165L;
private int response = JOptionPane.NO_OPTION;
private SelectionFrame frame = null;
public SelectionDialog(String attachmentName, Long processInstance, String processName) {
super(new SelectionFrame("Selection"));
setModalityType(ModalityType.TOOLKIT_MODAL);
setVisible(true);
toFront();
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
response = JOptionPane.showConfirmDialog(this.getParent(), "Would you like to apply the policy attachment " + attachmentName + " to current instance (" + processInstance + ") of process " + processName + " ?", "Confirm",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
}
public void setVisible(boolean visible) {
super.setVisible(visible);
if (!visible) {
((SelectionFrame)getParent()).dispose();
}
}
public int getUserSelection(){
return response;
}
}
는 프레임 코드 :
public class SelectionFrame extends JFrame{
private static final long serialVersionUID = -9063300247378170855L;
SelectionFrame(String title) {
super(title);
setUndecorated(true);
setVisible(true);
setLocationRelativeTo(null);
}
}
그런 다음 내 주요 응용 프로그램 내에서 내가이 같이 사용
SelectionDialog dialog = new SelectionDialog(attachmentDAO.getAttachmentName(), inst.getInstanceId(), this._processId);
int response = dialog.getUserSelection();
if (response == JOptionPane.NO_OPTION) {
System.out.println("No button clicked");
} else if (response == JOptionPane.YES_OPTION) {
System.out.println("Yes button clicked");
} else if (response == JOptionPane.CLOSED_OPTION) {
//System.out.println("JOptionPane closed");
}
dialog.setVisible(false);
는 또한 여기에 사진을 포함했다 : 를! http://tinypic.com/view.php?pic=mslnyq&s=8#.Uvq17bTpKnc ! http://tinypic.com/view.php?pic=33mlbty&s=8
더 빨리 도움을 받으려면 [최소, 완료, 테스트 및 판독 가능한 예] (http://stackoverflow.com/help/mcve)를 게시해야합니다. –
조언에 따라 코드와 두 장의 그림을 포함 시켰습니다. – Peter
나는 그것을 고치지 만 다른 문제가 발생했습니다. 따라서, 나는 새로운 질문을 만들었습니다. http://stackoverflow.com/questions/21727652/jframe-is-not-removed-from-the-taskbar – Peter