2013-07-19 147 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()(不帶「s」)。您還應該重寫getPreferredSize()方法來設置自定義組件的大小。請閱讀Custom Painting上的Swing教程以獲取更多信息和更好的示例。