gpt4 book ai didi

java - 如何移动 JFrame 形状

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

我正在尝试开发一个简单的游戏。游戏是关于形状的。形状会移动,我们将用鼠标捕捉。我已经创建了一个椭圆形并给定了椭圆形图形的大小。但我无法反复移动这个形状。我想我需要使用计时器类。我自己尝试了 2 个小时,但还没成功。

代码;

    import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;


import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JFrame;
import javax.swing.JPanel;



public class myshapestry extends JFrame implements ActionListener {

JFrame frame=new JFrame("Deneme");
Container l ;
private static int ballX=150;
private static int ballY=150;
myshapestry() {
l=this.getContentPane();
l.setLayout(null);
MyPanel panel=new MyPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.add(panel);
frame.setVisible(true);
frame.setSize(getPreferredSize());``

}
public Dimension getPreferredSize() {
return new Dimension(500,600);
}
public static void main (String args[]){
myshapestry tr=new myshapestry();
tr.setTitle("Game of Shapes");


}

private static class MyPanel extends JPanel {
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.fillOval(ballX, ballY,50 , 70);

}

public void actionPerformed(ActionEvent e){
ballX = ballX + 5;
ballY = ballY + 10;
repaint();
}

}

}

我在 myshapestry 代码块中尝试这些代码;

Timer timer=new Timer(100,myshapestry);
t.start();

最佳答案

添加这样的内容

javax.swing.Timer timer=new javax.swing.Timer(100, panel) ;
timer.start();

每 100 毫秒,timer 就会调用 MyPanel 类的 actionPerformed() 方法

关于java - 如何移动 JFrame 形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30954570/

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