为什么矩形没有穿过框架?

时间:2014-08-01 15:18:05

标签: java swing

我正在学习图形部分,当我理解了paintComponent方法的作用时,我尝试了这个。我尝试绘制一个矩形并使用while循环,将其移过框架。但代码似乎没有运行。请注意我是新手,我所做的只是一个试验。

import java.awt.*;

import javax.swing.*;


public class RightFlowLayout extends Panel{

    public static void main(String[]args)
    {
         JFrame frame=new JFrame("My");
         Panel panel=new Panel();

         frame.add(panel);
         frame.setSize(600, 600);
         frame.setVisible(true);

    }       

    }


class Panel extends JPanel{
    public int x=20;
    public int y=20;
    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        while(true)
        {

            g.fill3DRect(x, y, 50, 50, true);
            x+=5;
            y+=5;
        }
}

}

1 个答案:

答案 0 :(得分:2)

而不是无限循环尝试使用Swing Timer

请查看How to Use Swing Timers

以下是示例代码:

int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
  public void actionPerformed(ActionEvent evt) {
      panel.repaint();
  }
};
Timer timer=new Timer(delay, taskPerformer);
timer.setRepeats(true);
timer.start();

找到Sample code here

enter image description here