ฉันจะตั้งค่าสีพื้นหลังของ JLabel ได้อย่างไร


149

ในตัวฉันJPanelฉันตั้งพื้นหลังของ a JLabelเป็นสีอื่น ฉันเห็นคำว่า "ทดสอบ" และเป็นสีฟ้า แต่พื้นหลังก็ไม่เปลี่ยนเลย ฉันจะแสดงให้มันดูได้อย่างไร?

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

คำตอบ:


312

ใช้

label.setOpaque(true);

มิฉะนั้นพื้นหลังจะไม่ได้ทาสีตั้งแต่เริ่มต้นของopaqueมีที่สำหรับfalseJLabel

จากJavaDocs :

หากเป็นจริงส่วนประกอบจะวาดทุกพิกเซลภายในขอบเขต มิฉะนั้นส่วนประกอบอาจไม่ทาสีบางส่วนหรือทั้งหมดของพิกเซลทำให้พิกเซลพื้นฐานสามารถแสดงผ่านได้

สำหรับข้อมูลเพิ่มเติมโปรดอ่าน Java สอนวิธีการใช้ป้ายกำกับ



13

คุณต้องตั้งค่า setOpaque (จริง) เป็นจริงอย่างชาญฉลาดส่วนพื้นหลังจะไม่ถูกวาดลงในแบบฟอร์ม ฉันคิดว่าจากการอ่านว่าถ้าไม่ได้ตั้งค่าเป็นจริงว่ามันจะวาดพิกเซลบางส่วนหรือไม่ใด ๆ กับรูปแบบ พื้นหลังมีความโปร่งใสโดยค่าเริ่มต้นซึ่งดูเหมือนว่าแปลกสำหรับฉันอย่างน้อย แต่ในทางของการเขียนโปรแกรมคุณต้องตั้งค่าเป็นจริงตามที่แสดงด้านล่าง

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

จาก 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

สำหรับพื้นหลังตรวจสอบให้แน่ใจว่าคุณได้นำเข้าjava.awt.Colorสู่แพ็คเกจของคุณ

ในmainวิธีการของคุณเช่นpublic static void main(String[] args)โทรวิธีที่นำเข้าแล้ว:

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);

หมายเหตุ: การตั้งค่าทึบแสงจะส่งผลต่อการมองเห็น จดจำความไวตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ใน Java

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.