デフォルトで setOpaque が false に設定されている jLabel があります。ラベルの背景色を特定の色に設定し、setOpaque を true に設定すると、色が表示されません。setOpaque が ture に設定されているにもかかわらず、色が表示されないのはなぜですか?
これが私がやろうとしていることです。
JLabel key = values[i];
key.setBackground(Color.red);
key.setOpaque(true);
私にとって魅力のように機能します:
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public class TestJLabel {
protected void initUI() {
JFrame frame = new JFrame(TestJLabel.class.getSimpleName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel key = new JLabel("Some opaque label with a yellow background.");
key.setBackground(Color.YELLOW);
key.setOpaque(true);
frame.add(key);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestJLabel().initUI();
}
});
}
}
その結果:
このようにしてみてください:-
JLabel key = values[i];
key.setOpaque(true);
key.setBackground(Color.red);