【问题标题】:How do I set the color of a JLabel using Java?如何使用 Java 设置 JLabel 的颜色?
【发布时间】:2019-06-15 02:23:50
【问题描述】:

我将在单击JButton 时创建多个Jlabel 组件。我知道如何创建标签并在其中设置文本,但我希望这个标签有颜色。

如果标签有名称,我只知道如何更改标签的颜色,但我的程序的一个重要部分是当我声明标签时,我没有它们的名称,如下面的代码所示:

newPanel.add(new JLabel("jlabel text"), g);

如何设置标签的颜色?

【问题讨论】:

  • 你的意思是I don't have names。为标签创建一个局部变量,并在将其添加到面板之前对其执行所有操作。
  • 但是随着时间的推移,我能否使用相同的名称添加多个颜色不同的 jLabel?
  • @Anon 如果我理解正确,您可能需要一个同时接受颜色和文本并返回新 jlabel 的函数,您可以在同一行将其传递给 add
  • @Anon 局部变量只存在于块的持续时间内(基本上从它上面最近的{,直到匹配的})。 “同名”只是一个临时别名,它不必在多次调用之间引用同一个对象。
  • @Anon 你可能太早开始摇摆了,我建议你再读一遍基础知识。

标签: java swing colors jlabel


【解决方案1】:

您应该将标签分配给一个变量,以便您可以对其执行其他操作:

JLabel myLabel = new JLabel("jlabel text");
myLabel.setForeground(new java.awt.Color.RED);
newPanel.add(myLabel);

现在将此代码放在一个函数中,例如按钮的事件处理程序。每次单击该按钮时,它都会创建一个新的 JLabel。名称myLabel 仅指当前正在创建的名称。所以是的,您可以重用相同的名称来引用不同的 JLabel 对象。在给定时刻,名称一次只能引用一个 JLabel。

【讨论】:

    【解决方案2】:
    yourLabel.setForeground(new java.awt.Color(r,g,b);
    

    【讨论】:

      【解决方案3】:

      我没有他们的名字,如下面的代码所示:

      newPanel.add(new JLabel("jlabel text"), g);
      

      所以给标签一个名字:

      JLabel label = new JLabel("label text");
      label.setOpaque( true );
      label.setBackground( Color.RED );
      newPanel.add(label, g);
      

      【讨论】:

        猜你喜欢
        • 2022-01-11
        • 2013-02-23
        • 2013-07-10
        • 2019-03-22
        • 1970-01-01
        • 2019-07-07
        • 2023-03-28
        • 1970-01-01
        相关资源
        最近更新 更多