【问题标题】:Use multiple background colors in labels在标签中使用多种背景颜色
【发布时间】:2012-03-23 19:46:05
【问题描述】:

我正在构建一个 JFrame 并且我想在其上拥有 3 个具有 3 种不同颜色的 JLabel 实例。

  1. 白色
  2. 红色
  3. 白色

这是我的代码:

package View;

import java.awt.*;
import javax.swing.*;

public class Home extends JFrame {

    private JLabel label, label1;
    private JPanel panel;
    private Container window = getContentPane();

    public Home (){
        initGUI();
    }

    public void initGUI(){
        setLayout(null);
        setTitle("");
        setPreferredSize(new Dimension(800,600));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        label = new JLabel();       
        label.setBounds(0, 0, 266, 800);
        label.setBackground(Color.WHITE);
        label.setOpaque(true);
        this.add(label);

        panel = new JPanel();

        pack();
    }
}

但是当我添加第二个红色标签时,它必须位于白色背景旁边,白色背景将消失

【问题讨论】:

  • 您的 3 个标签在哪里?我在您的代码中只看到 2 个。并且只有 1 被实例化和添加。
  • 您已经使用 label.setBackground(Color.WHITE);。很难将它们应用于其他标签吗?是否需要您在这个奇妙的网站上提出这样的问题?指定我们的问题。
  • 检查你在写什么label.setBounds(0, 0, 266, 800);。下一个标签必须在label.setBounds(267, 0, 266, 800);label3.setBounds(533, 0, 266, 800);,这样一个接一个。希望在错误的地方提供界限不是问题。请检查:-)
  • 1) 将文本放入标签中以进行调试。你看到什么字符串? 2) 为了尽快获得更好的帮助,请发布SSCCE。 3) 使用布局!
  • 你检查布局了吗?可能这些元素正在相互叠加。请分享添加第二个标签的代码。

标签: java eclipse swing background jlabel


【解决方案1】:

使用html作为文本标签

public class test {

public static void main(String[] args) {
    String initialText = "<html>\n" +
    "Color and font test:\n" +
    "<table>"+
    "<ul>\n" +
    "<tr>"+
    "<td bgcolor=\"#C0C0C0\">"+
    "<li><font color=red>red</font>\n" +
    "</td>"+
    "</tr>"+
    "<tr>"+
    "<td bgcolor=\"#FF0000\">"+
    "<li><font color=blue>blue</font>\n" +
    "</td>"+
    "</tr>"+
    "<tr>"+
    "<td bgcolor=\"#800000\">"+
    "<li><font color=green>green</font>\n" +
    "</td>"+
    "</tr>"+
    "<tr>"+
    "<td bgcolor=\"#FFFF00\">"+
    "<li><font size=-2>small</font>\n" +
    "</td>"+
    "</tr>"+
    "<tr>"+
    "<td bgcolor=\"#808000\">"+
    "<li><font size=+2>large</font>\n" +
    "</td>"+
    "</tr>"+
    "<tr>"+
    "<td bgcolor=\"#00FFFF\">"+
    "<li><i>italic</i>\n" +
    "</td>"+
    "</tr>"+
    "<tr>"+
    "<td bgcolor=\"#008080\">"+
    "<li><b>bold</b>\n" +
    "</td>"+
    "</tr>"+
    "</ul>\n"+
    "</table>"
    ;
    JFrame f = new JFrame("This is a test");
    f.setSize(400, 150);
    Container content = f.getContentPane();
    content.setBackground(Color.white);
    content.setLayout(new FlowLayout()); 
    content.add(new JLabel(initialText));


    f.setVisible(true);
  }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 2021-11-10
    • 2021-06-12
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多