m0_58326998 2021-12-15 23:02 采纳率: 83.3%
浏览 18
已结题

怎么让绘图过程一直重复进行

要求是让这段代码画出的同心圆动画一直重复下去




```import javax.swing.*;
import java.awt.*;

public class SimpleAnimation {

    JFrame frame;
    MyDrawPanel drawPanel;
    JTextField txField ;
    static int ringNumber;
    public static void main (String[] args) {
       SimpleAnimation gui = new SimpleAnimation (0,0);
       ringNumber=Integer.parseInt(JOptionPane.showInputDialog(null,"input ring numbers"));
       gui.go();
   }

   public SimpleAnimation(int x,int y) {
       frame = new JFrame();
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//       txField = new JTextField(10);
       drawPanel = new MyDrawPanel(x,y);       
//       frame.getContentPane().add(txField, BorderLayout.SOUTH);
       frame.getContentPane().add(drawPanel,BorderLayout.CENTER);
/*
       txField.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               ringNumber = Integer.parseInt(txField.getText());
               go();
           }
       });不能在回调方法中使用线程
       */
       frame.setSize(300,300);
       frame.setVisible(true);
   }

    public void go() {    
          for (int i = 0; i < ringNumber; i++) {
          
              drawPanel.x=drawPanel.x+1;
              drawPanel.y=drawPanel.y+1;
              drawPanel.repaint();
          
          try { Thread.sleep(50); } catch(Exception ex) { } }
     }// close go() method


    class MyDrawPanel extends JPanel {
         int x, y;
        public MyDrawPanel(int x, int y) {
            
            this.x = x;
            this.y = y;
        }
       public void paintComponent(Graphics g) {
//            g.setColor(Color.white);
//            g.fillRect(0,0,this.getWidth(), this.getHeight());

          g.setColor(Color.green);
          g.drawOval(100-x,130-y,40+2*x,40+2*y);

          }    

    } // close inner class
} // close outer class
  • 写回答

1条回答 默认 最新

  • 关注

    用循环语句不行吗?一直画用while(true)死循环。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月15日

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了