2010-03-04 37 views
130

Trong số JPanel, tôi đặt nền của JLabel thành màu khác. Tôi có thể thấy từ "Kiểm tra" và 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ị?Làm cách nào để đặt màu nền của JLabel?

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

Trả lời

264

Sử dụng

label.setOpaque(true); 

Nếu nền không phải là sơn, vì mặc định của opaquefalse cho JLabel.

Từ JavaDocs:

Nếu đúng thành phần vẽ nên mỗi điểm ảnh trong giới hạn của nó. Nếu không, 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 nằm bên dưới hiển thị.

Để biết thêm thông tin, hãy đọc Hướng dẫn Java How to Use Labels.

+0

+1 label.setOpaque (true); – bizzr3

38

Nền JLabel trong suốt theo mặc định. Đặt opacity tại đúng như thế:

label.setOpaque(true); 
3

Đối với nền, hãy chắc chắn bạn đã nhập java.awt.Color vào gói của bạn.

Trong phương pháp main của bạn, ví dụ: public static void main(String[] args), gọi phương thức đã nhập khẩu:

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: Thiết đục sẽ ảnh hưởng đến tầm nhìn của nó. Hãy nhớ độ nhạy trường hợp trong Java.

11

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

 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() 
Các vấn đề liên quan