Java - 防止JPanel在初始化时重新绘制

时间:2015-01-31 17:02:54

标签: java swing jpanel

JPanel panel = new JPanel() {
    private static final long serialVersionUID = 1L;

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        g.setColor(new Color(111, 0, 255));
        g.fillOval(300, 300, 200, 200);

        g.dispose();
    };
};

为什么这会立即绘制,每次调整JFrame时都会绘制? 无论如何只有在我拨打panel.repaint();时才能画画?

2 个答案:

答案 0 :(得分:1)

仍然认为你错了。

我能想到的唯一可行解决方案是尝试使用:

JComponent.setIgnoreRepaint( true );

答案 1 :(得分:0)

尝试使用一些标志来确定条件是否符合

protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        if(!ConditionMeet) return;

        //some code to executed when condition meet
    };