Bagaimana cara menetapkan warna latar belakang JLabel?

149

Di saya JPanel, saya mengatur latar belakang JLabelke warna yang berbeda. Saya dapat melihat kata "Test" dan berwarna biru, tetapi latar belakangnya tidak berubah sama sekali. Bagaimana saya bisa menampilkannya?

this.setBackground(Color.white);
JLabel label = new JLabel("Test");
label.setForeground(Color.blue);
label.setBackground(Color.lightGray);
this.add(label);
Pulau Catalina
sumber

Jawaban:

311

Menggunakan

label.setOpaque(true);

Kalau tidak, latar belakang tidak dicat, karena standarnya opaqueadalah falseuntuk JLabel.

Dari JavaDocs :

Jika benar komponen mengecat setiap piksel dalam batasnya. Jika tidak, komponen mungkin tidak mengecat sebagian atau semua pikselnya, memungkinkan piksel yang mendasarinya terlihat.

Untuk informasi lebih lanjut, baca Tutorial Java Cara Menggunakan Label .

Peter Lang
sumber
39

Latar belakang JLabel transparan secara default. Setel opacity menjadi true seperti itu:

label.setOpaque(true);
Yannick Loriot
sumber
13

Anda harus mengatur setOpaque (true) menjadi true jika tidak latar belakang tidak akan dicat ke formulir. Saya pikir dari membaca bahwa jika tidak disetel ke benar bahwa itu akan melukis beberapa pikselnya atau tidak ke formulir. Latar belakang transparan secara default yang tampaknya aneh bagi saya setidaknya tetapi dalam cara pemrograman Anda harus mengaturnya menjadi benar seperti yang ditunjukkan di bawah ini.

      JLabel lb = new JLabel("Test");
      lb.setBackground(Color.red);
      lb.setOpaque(true); <--This line of code must be set to true or otherwise the 

Dari JavaDocs

setOpaque

public void setOpaque(boolean isOpaque)
  If true the component paints every pixel within its bounds. Otherwise, 
  the component may not paint some or all of its pixels, allowing the underlying 
  pixels to show through.
  The default value of this property is false for JComponent. However, 
  the default value for this property on most standard JComponent subclasses 
   (such as JButton and JTree) is look-and-feel dependent.

Parameters:
isOpaque - true if this component should be opaque
See Also:
isOpaque()

sumber
6

Untuk latar belakang, pastikan Anda telah mengimpor java.awt.Colorke paket Anda.

Dalam mainmetode Anda , yaitu public static void main(String[] args), panggil metode yang sudah diimpor:

JLabel name_of_your_label=new JLabel("the title of your label");
name_of_your_label.setBackground(Color.the_color_you_wish);
name_of_your_label.setOpaque(true);

NB: Pengaturan buram akan memengaruhi visibilitasnya. Ingat sensitivitas case di Java.

Orji Friday Oko
sumber