簡體   English   中英

使用JOptionPane.showInputDialog在標題中使用自定義圖標

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM