无法在JFrame上绘制

时间:2015-12-07 13:13:23

标签: java swing jframe jlabel

我想在JFrame

上画一些东西
public class Frame extends JFrame{
    public static final int US=0;
    public static final int GERMANY=1;
    public Frame() {
        super("Frame");
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setContentPane(new JPanel());
        this.setSize(800, 600);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
    }
    public void draw() {
        this.removeAll();
        int count;
        JPanel Panel = new JPanel();
        GridLayout layout=new GridLayout(0, 1);
        Panel.setLayout(layout);
        JLabel label2 = new JLabel("Text-Only Label");
        Panel.add(label2);
        this.getContentPane().add(Panel);
        this.validate();
        this.repaint();
    }

}

当我尝试从另一个班级拨打draw()时,JFrame不会更新。

它仍然是一个空白屏幕,如构造函数中所示。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您应该在contentPane上调用removeAll,而不是在框架上调用。

this.getContentPane().removeAll();

而不是

this.removeAll();

答案 1 :(得分:2)

试试这个:

### Blog subdomain
RewriteCond %{HTTP_HOST} ^blog\.example\.co.uk$ [NC]
RewriteCond %{REQUEST_URI} !^/blog/ [NC]
RewriteRule ^(.*)$ /blog/$1 [L]