2011-08-28 9 views
2

JLabel의 배경색을 변경하고 싶습니다. setBackground()이 작동하지 않습니다. 색깔을 바꾸지 않습니다. 여기 내 코드는 다음과 같습니다.JLabel의 색상을 변경하는 방법


import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Test1 implements AdjustmentListener { 

    static JScrollBar sbarR, sbarG, sbarB; 
    static JLabel lbl; 
    static JPanel panel2; 
    static int r, g, b; 
    static Test1 nb; 

    public static void main(String[] args) { 

     nb = new Test1(); 

     JFrame frame = new JFrame("Test"); 
     frame.setLayout(new GridLayout(1,2)); 
     frame.setBounds(100, 100, 200, 200); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel panel1 = new JPanel(); 
     panel1.setLayout(new GridLayout(1, 3)); 
     panel2 = new JPanel(); 

     lbl = new JLabel(); 
     lbl.setOpaque(true); 

     sbarR = new JScrollBar(Adjustable.VERTICAL, 0, 1, 0, 255); 
     sbarG = new JScrollBar(Adjustable.VERTICAL, 0, 1, 0, 255); 
     sbarB = new JScrollBar(Adjustable.VERTICAL, 0, 1, 0, 255); 

     sbarR.addAdjustmentListener(nb); 
     sbarG.addAdjustmentListener(nb); 
     sbarB.addAdjustmentListener(nb); 

     panel2.add(lbl);   
     frame.add(panel1); 
     frame.add(panel2); 

     panel1.add(sbarR); 
     panel1.add(sbarG); 
     panel1.add(sbarB); 

     frame.setVisible(true); 
    } 

    @Override 
    public void adjustmentValueChanged(AdjustmentEvent e) { 

     r = sbarR.getValue(); 
     g = sbarG.getValue(); 
     b = sbarB.getValue(); 

     lbl.setBackground(new Color(r, g ,b)); 
    } 
}

제발 도와주세요. 감사.

+0

"작동하지 않을 것"은 정확하지 않습니다. 너 정확히 뭘보고있어? –

+0

@ 존 Skeet Sory. 나는 그것을 편집한다. –

답변

5

레이블에 텍스트가 없으므로 크기가 [0, 0]이므로 전혀 표시되지 않으므로 작동하지 않습니다. new JLabel("Hello world")으로 구성하면 예상대로 작동합니다.

+0

글쎄, 나는 라벨이 전체 패널에 설정 될 것이라고 생각했다. Grid 레이아웃을 사용하고 있기 때문에. JButtons처럼. 감사...! –

+1

전체'JFrame'과 panel1은'GridLayout'을 사용하고 있습니다 만, panel2는'JPanel' 디폴트 인'FlowLayout'을 사용합니다. 'panel2.setLayout (new BorderLayout());'을 추가하고'panel2.add (lbl);를'panel2.add (lbl, BorderLayout.CENTER);로 대체하여 lbl이 모든 panel2를 채우도록하십시오. –

+0

감사합니다 ........! –

관련 문제