JOptionPane.showConfirmDialog可以自己添加图片吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JOptionPane.showConfirmDialog可以自己添加图片吗?相关的知识,希望对你有一定的参考价值。
比如说左边那个叹号或者问号的图标,可以自己换成别的图标吗?
可以自定义图片的!Icon img = new ImageIcon(图片绝对路径);
JOptionPane.showConfirmDialog(null,
"是否关闭窗口?", "是否关闭窗口?", JOptionPane.YES_NO_OPTION, 0, img);
showInternalConfirmDialogpublic static int showInternalConfirmDialog(Component parentComponent,
Object message,
String title,
int optionType,
int messageType,
Icon icon)调出一个带有指定图标的内部对话框面板,其中的选项数由 optionType 参数确定。messageType 参数主要用于提供来自外观的默认图标。
参数:parentComponent - 确定在其中显示对话框的 Frame;如果为 null 或者 parentComponent 不具有 Frame,则使用默认的 Framemessage - 要在对话框中显示的对象;Component 对象呈现为 Component;String 对象呈现为字符串;其他对象将通过 toString 方法被转换为 Stringtitle - 对话框的标题字符串
optionType - 指定可用于对话框的选项的整数:YES_NO_OPTION 或 YES_NO_CANCEL_OPTION。
messageType - 指定消息种类的整数,主要用于确定来自可插入外观的图标:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGEicon - 要在对话框中显示的图标
API上写的很清楚了,建议这种现实问题多查查API!
有问题再追问,good luck!~ 参考技术A import javax.swing.*;
public class MessageDialog
public static void main(String[] args)
Icon icon = new ImageIcon("E:\\elipse_workspace\\Test1\\a.jpg");
JOptionPane.showMessageDialog(null, "哈哈", "测试", JOptionPane.CLOSED_OPTION, icon);
//地址下面的图片自己加!
JOptionPane 是或否窗口
【中文标题】JOptionPane 是或否窗口【英文标题】:JOptionPane Yes or No window 【发布时间】:2012-01-13 21:00:45 【问题描述】:我正在尝试使用“是”或“否”按钮创建消息。然后会出现一个窗口,其中包含特定消息,具体取决于用户单击是还是否。
这是我的代码:
public class test
public static void main(String[] args)
//default icon, custom title
int n = JOptionPane.showConfirmDialog(
null,
"Would you like green eggs and ham?",
"An Inane Question",
JOptionPane.YES_NO_OPTION);
if(true)
JOptionPane.showMessageDialog(null, "HELLO");
else
JOptionPane.showMessageDialog(null, "GOODBYE");
System.exit(0);
现在无论您按是还是否,它都会打印 HELLO。当用户选择否时,我如何让它显示 GOODBYE?
【问题讨论】:
你有死代码。你的 else 部分永远不会执行。 10 次赞成和 7 次最喜欢的问题...我想知道为什么 【参考方案1】:"if(true)" 将永远为真,并且永远不会出现在 else 中。如果你想让它正常工作,你必须这样做:
int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
JOptionPane.showMessageDialog(null, "HELLO");
else
JOptionPane.showMessageDialog(null, "GOODBYE");
System.exit(0);
【讨论】:
@JoshKing 如果它对你有用,那么你应该投票并接受这个答案。【参考方案2】:您总是在检查一个真实的条件,因此您的消息将始终显示。
您应该将 if (true)
语句替换为 if ( n == JOptionPane.YES_OPTION)
当 showXxxDialog 方法之一返回一个整数时,可能的 值是:
YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION
来自here
【讨论】:
+1 用于链接到 JavaDocs,但我将链接从 1.4.2 更新到 1.7,并在字段摘要中添加了一个锚点。【参考方案3】:你可以用这个来修复它:
if(n == JOptionPane.YES_OPTION)
JOptionPane.showMessageDialog(null, "HELLO");
else
JOptionPane.showMessageDialog(null, "GOODBYE");
【讨论】:
【参考方案4】:是和否消息的代码
int n = JOptionPane.showConfirmDialog(
null,
"sample question?!" ,
"",
JOptionPane.YES_NO_OPTION);
if(n == JOptionPane.YES_OPTION)
JOptionPane.showMessageDialog(null, "Opening...");
else
JOptionPane.showMessageDialog(null, "Goodbye");
System.exit(0);
【讨论】:
【参考方案5】:你可以更简单地做到这一点:
int test = JOptionPane.showConfirmDialog(null, "Would you like green eggs and ham?", "An insane question!");
switch(test)
case 0: JOptionPane.showMessageDialog(null, "HELLO!"); //Yes option
case 1: JOptionPane.showMessageDialog(null, "GOODBYE!"); //No option
case 2: JOptionPane.showMessageDialog(null, "GOODBYE!"); //Cancel option
【讨论】:
你错过了 switch 中的 break 语句。【参考方案6】:你正在写if(true)
,所以它总是会显示“Hello”消息。
您应该根据返回的n
的值做出决定。
【讨论】:
是的,但是我该如何编码呢?我可以将输出分配给一个变量,但我不知道该怎么做 @JoshKing 我不记得确切的值。尝试在控制台上打印 n 的值,并检查按下是时给出的值以及按下否时给出的值。然后使用 if(n == ?) else ".. 然后使用 if(n == ?)" 不要使用“魔法值”。定义的常量将在明年 JRE 下工作..【参考方案7】:为了更好地了解它的工作原理!
int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
if(n == 0)
JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
else if(n == 1)
JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
else if (n == 2)
JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
else if (n == -1)
JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
或
int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
switch (n)
case 0:
JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
break;
case 1:
JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
break;
case 2:
JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
break;
case -1:
JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
break;
default:
break;
【讨论】:
【参考方案8】:类似的东西......
//default icon, custom title
int n = JOptionPane.showConfirmDialog(null,"Would you like green eggs and ham?","An Inane Question",JOptionPane.YES_NO_OPTION);
String result = "?";
switch (n)
case JOptionPane.YES_OPTION:
result = "YES";
break;
case JOptionPane.NO_OPTION:
result = "NO";
break;
default:
;
System.out.println("Replace? " + result);
你可能还想看看DialogDemo
【讨论】:
你写了case JOptionPane.NO_OPTION:
2次。以上是关于JOptionPane.showConfirmDialog可以自己添加图片吗?的主要内容,如果未能解决你的问题,请参考以下文章