[java] JLabel의 배경색을 어떻게 설정합니까?

JPanel에서 a의 배경을 JLabel다른 색으로 설정했습니다. “Test”라는 단어를 볼 수 있으며 파란색이지만 배경은 전혀 바뀌지 않습니다. 그것을 보여줄 수 있습니까?

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



답변

사용하다

label.setOpaque(true);

그렇지 않으면 기본값 opaquefalsefor 이므로 배경이 페인트되지 않습니다 JLabel.

로부터 JavaDoc을 :

참이면, 컴퍼넌트는 그 경계 내의 모든 픽셀을 페인트합니다. 그렇지 않으면 구성 요소가 일부 또는 모든 픽셀을 페인트하지 않아 기본 픽셀이 표시 될 수 있습니다.

자세한 정보는 Java 학습서 레이블 사용 방법을 읽으십시오 .


답변

JLabel 배경은 기본적으로 투명합니다. 불투명도를 다음과 같이 true로 설정하십시오.

label.setOpaque(true);


답변

setOpaque (true)를 true로 설정해야합니다. 그렇지 않으면 배경이 양식에 그려지지 않습니다. 나는 그것이 true로 설정되지 않으면 픽셀의 일부 또는 전부를 폼에 칠할 것이라고 읽습니다. 배경은 기본적으로 투명하지만 적어도 나에게는 이상하게 보이지만 프로그래밍 방식에서는 아래 그림과 같이 true로 설정해야합니다.

      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에서

불투명

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


답변

배경의 경우 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의 대소 문자 구분을 기억하십시오.


답변