Swing 如何更改JLabel的颜色
我想更改JLabel的背景色<代码>设置背景()不工作。它不会改变颜色。这是我的密码:Swing 如何更改JLabel的颜色,swing,jlabel,java,Swing,Jlabel,Java,我想更改JLabel的背景色设置背景()不工作。它不会改变颜色。这是我的密码: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test1 implements AdjustmentListener { static JScrollBar sbarR, sbarG, sbarB; static JLabel lbl; static JPanel panel2
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test1 implements AdjustmentListener {
static JScrollBar sbarR, sbarG, sbarB;
static JLabel lbl;
static JPanel panel2;
static int r, g, b;
static Test1 nb;
public static void main(String[] args) {
nb = new Test1();
JFrame frame = new JFrame("Test");
frame.setLayout(new GridLayout(1,2));
frame.setBounds(100, 100, 200, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(1, 3));
panel2 = new JPanel();
lbl = new JLabel();
lbl.setOpaque(true);
sbarR = new JScrollBar(Adjustable.VERTICAL, 0, 1, 0, 255);
sbarG = new JScrollBar(Adjustable.VERTICAL, 0, 1, 0, 255);
sbarB = new JScrollBar(Adjustable.VERTICAL, 0, 1, 0, 255);
sbarR.addAdjustmentListener(nb);
sbarG.addAdjustmentListener(nb);
sbarB.addAdjustmentListener(nb);
panel2.add(lbl);
frame.add(panel1);
frame.add(panel2);
panel1.add(sbarR);
panel1.add(sbarG);
panel1.add(sbarB);
frame.setVisible(true);
}
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
r = sbarR.getValue();
g = sbarG.getValue();
b = sbarB.getValue();
lbl.setBackground(new Color(r, g ,b));
}
}
谁能帮我一下吗。谢谢。它不起作用,因为您的标签没有任何文本,所以它的大小为[0,0],因此根本不可见。用新的JLabel(“Hello world”)构建它,它将按预期工作。“它不会工作”不是很精确。你们到底看到了什么?嗯,我想标签会设置为整个面板。因为我使用的是网格布局。就像JButtons一样。谢谢您的整体
JFrame
和panel1使用的是GridLayout
,而panel2使用的是JPanel
默认的FlowLayout
。尝试添加panel2.setLayout(newborderlayout())代码>和替换面板2.添加(lbl)代码>由panel2.add添加(lbl,BorderLayout.CENTER)代码>让lbl填充所有面板2。