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