2013-02-23 129 views
-3
import java.awt.Color; 
import java.awt.Graphics; 
//import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 


public class GuiDemo1 extends JPanel{ 


    public static void main(String[] args){ 
      JPanel panel=new JPanel(); 
      JFrame frame=new JFrame(); 
      frame.getContentPane().add(panel); 
      frame.setVisible(true); 
      frame.setSize(500, 400); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 



    @Override 
    public void paintComponent(Graphics g) 
     { 

      g.setColor(Color.red); 
      g.fillRect(20, 50, 100, 100); 
     } 

} 

我是JAVA新手。我已经写了这个示例程序。但是这不起作用。可以有一点指出我犯的错误。在java中使用paintComponent和JPanel

一般来说调用super.paintComponent(g)有什么用?

+0

您可能希望更具体地了解什么不工作以及您尝试解决问题的方式。 – Krease 2013-02-23 06:52:29

回答

2

你的绘图添加到GuiDemo1类不是JPanel类:

//JPanel panel=new JPanel(); 
JPanel panel=new GuiDemo1(); 

,一般有什么用调用super.paintComponent方法(G)>

你的?希望在paintComponent(...)方法的开始处,因为它将为组件执行默认绘制,对于JPanel来说,基本上只是绘制背景。尝试添加:

panel.setBackground(Color.BLUE); 

并查看在没有super.paintComponent(g)时发生了什么。

相关问题