2

私はJOptionPaneを持っています:

JOptionPane.showMessageDialog(null, text);

テキストは刺すようなものです:

String text = "Hello world."

私がやりたいのは、テキストの色、具体的には1つの単語を変更して、「こんにちは」と言うことです。だから私が試したことは:

String t1 = "Hello";
String t2 = "world."
Font serifFont = new Font("Serif", Font.BOLD, 12);
AttributedString as = new AttributedString(t1);
as.addAttribute(TextAttribute.FONT, serifFont); 
as.addAttribute(TextAttribute.FOREGROUND, Color.red);


JOptionPane.showMessageDialog(null, as+t2);

私はattributedtext()に精通しておらず、これは機能しません。それはこれを行います:

"java.text.AttributedString@479c479cworld"

私が見逃しているステップはありますか?これは正しい方法ではありませんか?助言がありますか?

4

2 に答える 2

7

これを解決するためにhtmlを使用することが可能であるはずです、すなわち

String t = "<html><font color=#ffffdd>Hello</font> world!";

詳細については、 http://docs.oracle.com/javase/tutorial/uiswing/components/html.htmlを参照してください。

于 2012-08-17T15:00:15.607 に答える
6

ComponentメッセージパラメータでJOptionPaneにを渡すことができ、それを使用してメッセージを表示します。

ラベルが付いたaJLabelまたはaのようなもの。JPanel

更新しました

JLabel、JPanel、およびHTMLテキストの例

public class TestOptionPane {

    public static void main(String[] args) {

        JLabel label = new JLabel("Hello");
        label.setForeground(Color.RED);

        JOptionPane.showMessageDialog(null, label);

        JPanel pnl = new JPanel(new GridBagLayout());
        pnl.add(createLabel("The quick"));
        pnl.add(createLabel(" brown ", Color.ORANGE));
        pnl.add(createLabel(" fox "));

        JOptionPane.showMessageDialog(null, pnl);

        String text = "<html>The Quick <span style='color:green'>brown</span> fox</html>";
        JOptionPane.showMessageDialog(null, text);

    }

    public static JLabel createLabel(String text) {

        return createLabel(text, UIManager.getColor("Label.foreground"));

    }

    public static JLabel createLabel(String text, Color color) {

        JLabel label = new JLabel(text);
        label.setForeground(color);

        return label;

    }

}

Macの場合-

MacでのJOptionPaneの例

Windowsの場合-

WindowsでのJOptionPaneの例

于 2012-08-17T15:21:49.390 に答える