[英]Using custom icons in title with JOptionPane.showInputDialog
我正在嘗試在JOption窗格的標題中使用一個自定義圖標,而不是在標簽上使用。 有什么辦法可以做到嗎? 我在JOptionPane
使用了Icon類(如下所示),但它一直在主顯示區域而不是標題中顯示圖標。 這是代碼:
Icon icon = new ImageIcon(ApplicationManager.getApplicationImage().getImage());
String jid = (String)JOptionPane.showInputDialog(ApplicationManager.getMainWindow(),
Res.getString("label.enter.address"),
Res.getString("title.start.chat"),
JOptionPane.QUESTION_MESSAGE,
icon,
null,
selectedUser);
謝謝
試試這個代碼。
import javax.swing.JOptionPane;
import javax.swing.JDialog;
import javax.imageio.ImageIO;
import java.awt.Image;
import java.net.URL;
class OptionPaneIcon {
public static void main(String[] args) throws Exception {
JOptionPane jop = new JOptionPane(
"Message",
JOptionPane.QUESTION_MESSAGE,
JOptionPane.DEFAULT_OPTION
);
JDialog dialog = jop.createDialog("Dialog Title");
Image image = ImageIO.read(new URL(
"http://www.gravatar.com/avatar/f1d58f7932b6ae8027c4e1d84f440ffe?s=128&d=identicon&r=PG"));
dialog.setIconImage( image );
dialog.setVisible(true);
}
}
還沒有嘗試過,但是您可以使它與內部框架一起使用,而不是使用對話框。 嘗試創建JOptionPane
的實例,然后調用getInternalFrame()
。 JInternalFrame有一個setFrameIcon(Icon icon)
方法。
編輯:當然, JInteralFrame
的父級必須是JDesktopPane
,但除此之外,它應該可以工作。
JOptionPane從父框架獲取其圖標。 因此,您可以在虛擬JFrame上設置圖標,並將其傳遞給JOptionPane調用:
BufferedImage image = ImageIO.read(new URL(
"http://www.gravatar.com/avatar/f1d58f7932b6ae8027c4e1d84f440ffe?s=128&d=identicon&r=PG"));
JFrame frame = new JFrame();
frame.setIconImage(image);
JOptionPane.showInputDialog(frame, "Enter Address", "Chat",
JOptionPane.QUESTION_MESSAGE, null, null, "");
注意,這可能會導致所顯示對話框的位置出現問題,因為它將相對於傳入的虛擬JFrame放置。
嗨,
這將無法正常工作,因為我有一些預先選擇的值,我需要使用該值來填充“輸入”對話框,因此不能使用JOptionPane構造函數,而必須使用showInputDialog方法。
因此,我相信在使用showInputDialog(。,。,。,。,。,。)時不能使用自定義圖標。
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.