gpt4 book ai didi

java - 动画未显示

转载 作者:行者123 更新时间:2023-12-01 10:10:01 25 4
gpt4 key购买 nike

我正在尝试这个非常简单的代码。它运行但不显示动画。我是动画新手,所以我不知道我错过了什么。

package sample;

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

public class Sample extends JPanel implements ActionListener {
Timer tm = new Timer(5, this);
int x = 0, Velx = 5;

public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillRect(x, 30, 50, 50);
tm.start();
}

public void actionPerformed(ActionEvent e) {
x = x + Velx;
repaint();
}

public static void main(String[] args) {
Sample X = new Sample();
JFrame a = new JFrame();
a.setTitle("Rectangle RED");
a.setSize(500,500);
a.setVisible(true);
}
}

最佳答案

Sample X = new Sample();

X 永远不会添加到框架中。请参阅第一个提示(粗体部分),了解如何将 X 添加到框架。

其他提示:

  • Sample@Override getPreferredSize() 方法返回 Canvas 的合理大小。然后我们可以省去a.setSize(500,500);,而改为a.add(X); a.pack(); 使框架达到正确的尺寸以显示渲染。
  • Timer 应该在绘制方法之外的某个地方启动!我会选择构造函数。
  • 任何 JComponent 中的自定义绘制都应在 paintComponent(Graphics) 方法中完成。
  • 在所有自定义绘制中,我们应该立即调用super方法,以确保通过绘制容器的BG和边框来删除之前的绘制。
  • 请学习常见的 Java 命名法(命名约定 - 例如 EachWordUpperCaseClassfirstWordLowerCaseMethod()firstWordLowerCaseAttribute,除非它是 UPPER_CASE_CONSTANT)并一致地使用它。
  • JFrame a = new JFrame(); a.setTitle("Rectangle RED"); 可以缩短为
    JFrame a = new JFrame("Rectangle RED");

关于java - 动画未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36181209/

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