gpt4 book ai didi

java - 如何为 drawLine 制作动画?

转载 作者:行者123 更新时间:2023-11-29 07:54:07 28 4
gpt4 key购买 nike

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

public class Line{

public static void main(String[] args){

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DrawLine(150,300,350,300));
frame.setSize(500,500);
frame.setVisible(true);
}
}

class DrawLine extends JPanel{

int x1;
int y1;
int x2;
int y2;
int midx;
int midy;

public DrawLine(int x1, int y1, int x2, int y2){
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
midx = (x1+x2)/2;
midy = (y1+y2)/2;
}

public void animateLine(Graphics g){
g.drawLine(x1,y1,midx,midy);
g.drawLine(x2,y2,midx,midy);
}

public void paintComponent(Graphics g){
final Graphics2D g2d = (Graphics2D)g;
animateLine(g2d);
}

}

所以,我这里有一些非常基本的代码,可以从两端向中间点画一条线。我正在尝试制作中间点的 Y 值减小的动画,因此它会制作出类似箭头的东西。根据我收集到的信息,我需要使用一个 Action 监听器和一个计时器来完成此操作,但我一直无法弄清楚具体如何操作。如果有人可以告诉我在哪里放置以及如何使用计时器和 repaint() 以便您可以从该行观看箭头形式,我将不胜感激。我正在尝试使用这个简单的示例,以便将其改编成更复杂的动画/绘图。

最佳答案

更新 javax.swing.TimeractionPerformed() 方法中的坐标并调用 repaint()

关于java - 如何为 drawLine 制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081076/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com