【问题标题】:usage of paintComponent and JPanel in java [closed]java中paintComponent和JPanel的使用[关闭]
【发布时间】:2013-02-23 06:36:53
【问题描述】:
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的新手。我已经编写了这个示例程序。但是这不起作用。有人可以指出我所做的错误。

通常调用 super.paintComponent(g) 有什么用?

【问题讨论】:

  • 您可能希望更具体地了解哪些问题不起作用以及您尝试解决的问题。

标签: java swing user-interface jpanel


【解决方案1】:

您的自定义绘画已添加到 GuiDemo1 类而不是 JPanel 类:

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

通常调用super.paintComponent(g)有什么用?>

您希望在 paintComponent(...) 方法的开头使用它,因为它将为组件执行默认绘制,在 JPanel 的情况下基本上只是绘制背景。尝试添加:

panel.setBackground( Color.BLUE );

看看有/没有 super.paintComponent(g) 会发生什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2015-02-04
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多