2014-10-16 10 views
0

오른쪽 테두리에 불투명하게하려면 JComponent입니다.JComponent를 불투명하게합니다.

나는 내가 라이브러리를 만들 것 때문이고, 내가 사용하지 않는

불투명 할 수있는 JComponent을 사용하고, 그래서 내 특정 특성을 가진 개체를 만들 원하는 JPanel 또는 JLabel

나는 JLabel 내가없는 것을 그렇게 작동 사용하는 경우는하지 않는 이유
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import java.awt.image.BufferedImage; 
import java.util.ArrayList; 

public class ProbadorCodigos { 

    JFrame Frame=new JFrame(); 
    JComponent BORDEDE=new JComponent() {private static final long serialVersionUID = 2222L;}; 

    public ProbadorCodigos() { 

     Frame.setSize(500, 500); 
     Frame.setResizable(false); 
     Frame.setUndecorated(false); 
     Frame.setLayout(null); 
     Frame.setLocationRelativeTo(null); 
     Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Frame.getContentPane().setBackground(Color.darkGray); 
     Format(); 
     Action(); 
    } 


    private void Format() { 

     BORDEDE.setBounds(Frame.getWidth()-100, 0, 100, Frame.getHeight()); 
     BORDEDE.setOpaque(true); 
     BORDEDE.setVisible(true); 
     BORDEDE.setEnabled(true); 
     BORDEDE.setFocusable(true); 
     BORDEDE.setBackground(Color.red); 
     System.out.println(BORDEDE); 
    } 
    private void Action() { 


     Frame.add(BORDEDE); 
    }  

    public static void main(String[] args) { 


     ProbadorCodigos Ventana=new ProbadorCodigos(); 
     Ventana.Frame.setVisible(true); 
    } 

} 

noo

모르겠다는 불투명 보여?

당신의 조언을 주셔서 감사 및 답변

+0

''JPanel이나 JLabel을 사용하고 싶지 않으므로 많은 수입품을 사용하는 것은 좋지 않습니다. "'- 허? 정말 이해가 안되기 때문에 설명해 주시겠습니까? 또한 구성 요소가 어떻게 작동합니까? 그것이 불투명하지 않다는 것을 어떻게 증명합니까? –

+0

mmm 나는 JPanel이나 JLabel을 사용하고 싶지 않다. 왜냐하면 그것들은 쓸데없는 방법을 가지고있다. – WearFox

+0

JPanel을 사용하고 싶지 않다는 동기를 설명하지는 않는다. 그 특성상 불투명하다. 또한, 위의 내 의견에 내 다른 질문을 해결하십시오. JComponent가 실제로 불투명하지 않다는 것을 어떻게 알 수 있습니까? 'paintComponent (...)'메소드에서 이미지 나 배경색으로 채우고 있습니까? –

답변

2

문제를 해결하는 일반적인 용이성을 위해 나의 제안 : JPanel과를 사용합니다. 당신이 이것을 당신의 수업을위한 기초로 사용하지 않는 좋은 이유를 보여줄 때까지, 당신의 문제에 대한 최선의 해결책은 제 마음 속에 남아 있습니다. 그렇지 않으면 다음과 같은 코드가 필요합니다.

JComponent bordede = new JComponent() { 
    private static final long serialVersionUID = 2222L; 

    @Override 
    protected void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    int width = getWidth(); 
    int height = getHeight(); 
    g.setColor(getBackground()); 
    g.fillRect(0, 0, width, height); 
    } 
}; 

간단히 JPanel을 사용하는 경우 다시는 필요하지 않습니다. 코드와

다른 문제 :

  • 귀하의 코드는 자바 명명 규칙을 준수하지 않는 등 다른 자바 프로그래머를 혼동한다.
  • null 레이아웃과 setBounds(...)을 사용하면 GUI를 개선하고 디버그하기가 어렵습니다. 이 유형의 레이아웃은 사용하지 않아야합니다.
+0

네, 그 작품은 이제 ..하지만 내 reazon이 좋다고 생각합니다. "제 자신의 JComponet을 만들고 싶습니다. 저는 JPanel 또는 JLabel과 같은 다른 것들을 사용하고 싶지 않습니다. JComponent를 확장합니다. – WearFox