【问题标题】:Creating a multi-colored JLabel in java with the help of html在 html 的帮助下在 java 中创建一个多色的 JLabel
【发布时间】:2020-07-20 02:06:56
【问题描述】:

我正在尝试将我的 JLabel 的一部分的颜色更改为特定颜色。我正在尝试使 Blue Wins: 0 中的“Blue Wins”变成蓝色,我知道我应该使用 html函数,并且该函数应该看起来像这个新的JLabel("<html>Blue Wins: 0 <font color='Blue Wins'>blue</font></html>"));。但我不确定它是否应该是这样的,更重要的是我应该将此函数放在我的代码中的什么位置(GUI 部分而不是逻辑部分)

这两个sn-ps的代码是连接到Jlabel和它的颜色和字体的Gui部分的代码。

JLabel infoLabel;
    JLabel XWinCounter = new JLabel("X Wins: 0");
    JLabel OWinCounter = new JLabel("O Wins: 0");
    GameLogic gameLogic;

infoLabel.setHorizontalAlignment(JLabel.CENTER);
        panel.setBorder(new LineBorder(Color.black,1));
        XWinCounter.setForeground(Color.BLUE);
        XWinCounter.setOpaque(true);
        infoPanel.add(XWinCounter);
        infoPanel.add(OWinCounter);
        infoPanel.add(infoLabel);
        getContentPane().add(infoPanel, BorderLayout.NORTH);
        getContentPane().add(panel,BorderLayout.CENTER); 

Gui Jlabel

这是带有 Jlabel 的 GUI 当前的外观,整个前景色为蓝色,我只希望 Blue Wins: Part 为蓝色,并且 0 应保持与当前颜色相同。

【问题讨论】:

  • <font color='Blue Wins'> “但我不确定它是否应该是这样的” 不,绝对不是。当在 Swing 组件中使用 HTML 时遇到问题,建议先在浏览器中将其作为 HTML 进行尝试,然后使用 HTML 验证服务等进行验证。不要只是编造东西并希望它能正常工作。

标签: java html swing user-interface jlabel


【解决方案1】:

您需要在 JLabel 的构造器上添加 HTML,如下所示:

public class Answers {
    public static JFrame f = new JFrame("Colors");
    public static void main(String[] args) {
        JLabel XWinCounter = new JLabel("<html>X Wins: <font color='blue'>0</font></html>");
        JLabel OWinCounter = new JLabel("<html>Y Wins: <font color='red'>0</font></html>");
        f.add(OWinCounter, BorderLayout.NORTH);
        f.add(XWinCounter, BorderLayout.SOUTH);
        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f.pack();
        f.setVisible(true);
    }

}

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多