2010-03-14 15 views
1

我想在我的Java程序中使一個消息框粗體字(變量)。這是我的代碼:如何在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); 

我想讓變量「文件」在我的消息框中以粗體文本顯示。到目前爲止,我只能將整個消息框以粗體顯示,或者根本不顯示。我該怎麼做呢?

回答

1

嘗試在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); 
+0

好主意,但它在這裏不起作用,即使導入了javax.swing.text.html.HTML.Tag。 – ubiquibacon 2010-03-14 02:45:40

+0

你使用的是什麼OS/JRE?這個聲明適用於我(在Vista/JRE 1.6_u13上)。 – Ash 2010-03-14 03:02:41

+0

我的操作系統是W7X64。我爲32位和64位都安裝了JDK 1.6.0_17,並且(這兩個版本都附帶了各自版本的JRE 1.6.0_17)。我使用的是NetBeans,它依賴於32位JDK和JRE。 – ubiquibacon 2010-03-14 03:34:53

3

使用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); 
+0

哈哈,很好!我甚至沒有意識到文本已經大膽!感謝大家! – ubiquibacon 2010-03-14 03:40:39

+0

所以我解決了你的問題,你接受其他答案? – camickr 2010-03-14 05:33:18

+0

從技術上講,其他人確實解決了我的問題,我只是沒有意識到文本已經大膽。如果我能接受這兩個答案,我會的。既然你非常關心點,我會記住你,當我得到足夠的積分來放棄時,你可以擁有儘可能多的你想要的......我認爲你必須等到我得到50分(除非你知道另一種方式)。謝謝你的幫助。 – ubiquibacon 2010-03-14 07:43:50

相關問題