如何用Java将消息框中的特定单词(变量)设为粗体?

如何用Java将消息框中的特定单词(变量)设为粗体?,java,messagebox,text-formatting,Java,Messagebox,Text Formatting,我试图在Java程序中使消息框中的一个单词(变量)变为粗体。这是我的密码: int n = messageBox.showConfirmDialog(frame, "The File "+ file +" already exists." + "\n" + "Do you want to replace it?", "File Already Exists!", messageBox.YES_NO_OPTION); 我想让变量“file”以粗体文本显示在我的消息框中。到目前为止,我只能让整个消

我试图在Java程序中使消息框中的一个单词(变量)变为粗体。这是我的密码:

int n = messageBox.showConfirmDialog(frame,
"The File "+ file +" already exists." +
"\n" + "Do you want to replace it?",
"File Already Exists!",
messageBox.YES_NO_OPTION);

我想让变量“file”以粗体文本显示在我的消息框中。到目前为止,我只能让整个消息框以粗体显示,或者根本没有。如何做到这一点?

尝试用html标记包装文本。许多swing组件支持一些基本的HTML,如斜体、粗体和下划线。例如,您应该将代码更改为:

int n = messageBox.showConfirmDialog(frame,
"<html>The File <b>"+ file +"</b> already exists." +
"\n" + "Do you want to replace it?</html>",
"File Already Exists!",
messageBox.YES_NO_OPTION);
int n=messageBox.showConfirmDialog(框架,
文件“+文件+”已存在+
“\n”+“是否要替换它?”,
“文件已存在!”,
messageBox.YES\u NO\u选项);

尝试用html标记包装文本。许多swing组件支持一些基本的HTML,如斜体、粗体和下划线。例如,您应该将代码更改为:

int n = messageBox.showConfirmDialog(frame,
"<html>The File <b>"+ file +"</b> already exists." +
"\n" + "Do you want to replace it?</html>",
"File Already Exists!",
messageBox.YES_NO_OPTION);
int n=messageBox.showConfirmDialog(框架,
文件“+文件+”已存在+
“\n”+“是否要替换它?”,
“文件已存在!”,
messageBox.YES\u NO\u选项);

使用HTML对我来说很好。问题是默认字体已经是粗体的,所以您看不到其他字体

尝试使用“斜体”标记或“字体”标记,并指定不同的颜色以查看差异

或者,您可以使用自定义字体传入自己的JLabel,而不是传入文本字符串。比如:

String message = "<html>The File <b> file </b> already exists</html>";
JLabel label = new JLabel(message);
label.setFont( UIManager.getFont("TextField.font") );

int result = JOptionPane.showConfirmDialog(
    this,
    label,
    "File already exists!",
    JOptionPane.YES_NO_OPTION);
String message=“文件已经存在”;
JLabel标签=新的JLabel(消息);
label.setFont(UIManager.getFont(“TextField.font”);
int result=JOptionPane.showConfirmDialog(
这
标签,
“文件已存在!”,
JOptionPane.YES\u NO\u选项);

使用HTML对我来说很好。问题是默认字体已经是粗体的,所以您看不到其他字体

尝试使用“斜体”标记或“字体”标记,并指定不同的颜色以查看差异

或者,您可以使用自定义字体传入自己的JLabel,而不是传入文本字符串。比如:

String message = "<html>The File <b> file </b> already exists</html>";
JLabel label = new JLabel(message);
label.setFont( UIManager.getFont("TextField.font") );

int result = JOptionPane.showConfirmDialog(
    this,
    label,
    "File already exists!",
    JOptionPane.YES_NO_OPTION);
String message=“文件已经存在”;
JLabel标签=新的JLabel(消息);
label.setFont(UIManager.getFont(“TextField.font”);
int result=JOptionPane.showConfirmDialog(
这
标签,
“文件已存在!”,
JOptionPane.YES\u NO\u选项);

好主意,但即使导入javax.swing.text.html.html.Tag,它在这里也不起作用。您使用的是什么OS/JRE?这句话适合我(在Vista/JRE 1.6_u13上)。我的操作系统是W7X64。我已经为32位和64位安装了JDK1.6.0_17(这两个版本都有各自的JRE 1.6.0_17)。我正在使用NetBeans,它依赖于32位JDK和JRE。感谢您的帮助,您的答案是正确的,我只是没有意识到我的文本在消息窗口中默认为粗体。我只是用斜体表示。好主意,但即使导入javax.swing.text.html.html.Tag,它在这里也不起作用。您使用的是什么OS/JRE?这句话适合我(在Vista/JRE 1.6_u13上)。我的操作系统是W7X64。我已经为32位和64位安装了JDK1.6.0_17(这两个版本都有各自的JRE 1.6.0_17)。我正在使用NetBeans,它依赖于32位JDK和JRE。感谢您的帮助,您的答案是正确的,我只是没有意识到我的文本在消息窗口中默认为粗体。我只是改成斜体。哈哈,接得好!我甚至没有意识到文本已经用粗体了!谢谢大家!从技术上讲,另一个人确实解决了我的问题,我只是没有意识到文本已经加粗了。如果我能接受这两个答案,我会的。既然你如此在乎分数,我会记住你,当我得到足够的分数时,你可以得到你想要的任何分数。。。我想你必须等到我50岁(除非你知道另一种方法)。谢谢你的帮助,真的吗?你的回答是“这里不行”。因此,如果我没有解释问题并提出其他解决方案,你仍然会猜测。积分不是问题,它们一文不值。哦,伙计,卡米克尔,我只是想告诉你那些积分感觉很好。嗯嗯,所以填充。:)卡米克,如果分数不是问题,你还在写什么?你们两个都帮了我,这不是在帮助其他人吗?这个网站是关于什么的?如果人们只是帮助别人得到一些回报,这个世界将是一个相当糟糕的地方。再次感谢您的贡献,因为我可能需要更长的时间才能明白我只需要用斜体字来代替。哈哈,好主意!我甚至没有意识到文本已经用粗体了!谢谢大家!从技术上讲,另一个人确实解决了我的问题,我只是没有意识到文本已经加粗了。如果我能接受这两个答案,我会的。既然你如此在乎分数,我会记住你,当我得到足够的分数时,你可以得到你想要的任何分数。。。我想你必须等到我50岁(除非你知道另一种方法)。谢谢你的帮助,真的吗?你的回答是“这里不行”。因此,如果我没有解释问题并提出其他解决方案,你仍然会猜测。积分不是问题,它们一文不值。哦,伙计,卡米克尔,我只是想告诉你那些积分感觉很好。嗯嗯,所以填充。:)卡米克,如果分数不是问题,你还在写什么?你们两个都帮了我,这不是在帮助其他人吗?这个网站是关于什么的?如果人们只是帮助别人得到一些回报,这个世界将是一个相当糟糕的地方。再次感谢您的贡献,因为我可能需要更长的时间才能明白我只需要用斜体字来代替。