paintComponent表现得很奇怪

时间:2017-12-02 15:07:57

标签: java swing

所以,我制作了一个程序,只要点击一个按钮就会绘制一个矩形。 但矩形只出现了一段时间.. 这是JFrame的代码

        JFrame jf; // This is declared as a static member
        JPanel panel = new JPanel();
        panel.setBounds(200,0,200,400);
        jf = new JFrame("Try");
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);
        jf.setSize(400,400);       
        jf.setVisible(true);

        JButton jb = new JButton("Click");
        jb.setBounds(10,10,100,60);
        panel.add(jb);
        jf.add(panel);

        Handler handle = new Handler();
        jb.addActionListener(handle);

对于ActionListener:

 public void actionPerformed(ActionEvent ae)
    {
    Mainting maint = new Mainting();    
    jf.add(maint);
    maint.draw(true);

绘图类: 布尔检查器= false;

public void draw(Boolean b)
{
    checker = b;
    repaint();
}

@Override  
public void paintComponent(Graphics g)
         {
  if(checker){
  super.paintComponent(g);
  g.fillRect(0,0,100,80);

问题是: 如果我首先最大化窗口然后单击按钮,则不会显示任何内容。 如果我只是单击按钮,则不会显示任何内容。 但是,如果我单击按钮并最大化窗口,则会出现一个矩形。 为什么会这样?

0 个答案:

没有答案