Làm cách nào để đặt màu nền của JLabel?


149

Trong tôi JPanel, tôi đặt nền của a JLabelthành một màu khác. Tôi có thể thấy từ "Thử nghiệm" và nó có màu xanh, nhưng nền không thay đổi chút nào. Làm thế nào tôi có thể làm cho nó hiển thị?

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

Câu trả lời:


311

Sử dụng

label.setOpaque(true);

Nếu không, nền không được vẽ, vì mặc định opaquefalsecho JLabel.

Từ JavaDocs :

Nếu đúng, thành phần sẽ vẽ mọi pixel trong giới hạn của nó. Mặt khác, thành phần có thể không vẽ một số hoặc tất cả các pixel của nó, cho phép các pixel bên dưới hiển thị xuyên qua.

Để biết thêm thông tin, hãy đọc Hướng dẫn Java Cách sử dụng Nhãn .


39

Nền JLabel mặc định trong suốt. Đặt độ mờ ở đúng như thế:

label.setOpaque(true);

13

Bạn phải đặt setOpaque (true) thành true khác, nền sẽ không được vẽ theo mẫu. Tôi nghĩ từ việc đọc rằng nếu nó không được đặt thành đúng thì nó sẽ vẽ một số hoặc không bất kỳ pixel nào của nó thành biểu mẫu. Nền mặc định trong suốt có vẻ kỳ lạ đối với tôi ít nhất nhưng theo cách lập trình, bạn phải đặt nó thành đúng như hiển thị bên dưới.

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

Từ 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()

6

Đối với Nền, đảm bảo bạn đã nhập java.awt.Colorvào gói của mình.

Trong mainphương thức của bạn , nghĩa là public static void main(String[] args)gọi phương thức đã nhập:

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: Đặt mờ sẽ ảnh hưởng đến khả năng hiển thị của nó. Ghi nhớ độ nhạy trường hợp trong Java.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.