2013-07-19 5 views
2

여기 간단한 코드가 있습니다. JPanel에 그려진 타원을 추가하는 방법을 모르겠습니다. 전에 그림을 그리기도했지만 생성자를 사용한 적이 없으므로 생각이 없습니다.JPanel에 타원형 모양 추가

public class Buffer extends JPanel{ 
    public JFrame frame; 
    public JPanel panel; 

    public Buffer(){ 
     frame=new JFrame(); 
     panel=new JPanel(); 

     panel.setSize(500,500); 
     panel.setBackground(Color.red); 

     frame.setSize(500,500); 
     frame.setVisible(true); 
     frame.add(panel); 
    } 

    public void paintComponent(Graphics g){ 
     super.paintComponents(g); 
     g.fillOval(20,20,20,20); 
    } 

    public static void main(String args[]){ 
     new Buffer(); 
    } 
} 

답변

2

코드의 기본 구조가 잘못되었습니다. Buffer 클래스는 프레임을 생성하지 않아야합니다. Buffer 클래스는 페인팅에 사용되어야합니다.

public static void main(String args[]) 
{ 
    Buffer oval = new Buffer(); 
    oval.setBackground(Color.RED); 

    JFrame frame=new JFrame(); 
    frame.add(oval); 
    frame.setSize(500,500); 
    frame.setVisible(true); 
} 

당신이 (이하 "의"없이) super.paintComponent()를 호출해야합니다 : 코드는 무언가 같이해야합니다. 또한 사용자 지정 구성 요소의 크기를 설정하려면 getPreferredSize() 메서드를 재정의해야합니다. 더 많은 정보와 더 좋은 예를 보려면 Custom Painting에있는 Swing 튜토리얼을 읽어보십시오.