如何移动 JFrame 形状
How to move JFrame shape
我正在尝试开发一款简单的游戏。游戏是关于形状的。形状会移动,我们会用鼠标捕捉。我已经创建了一个椭圆形并给定了椭圆形图形的大小。但是我不能反复移动这个形状。我想我需要使用计时器 class。我自己已经尝试了 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
class
的 actionPerformed()
方法
我正在尝试开发一款简单的游戏。游戏是关于形状的。形状会移动,我们会用鼠标捕捉。我已经创建了一个椭圆形并给定了椭圆形图形的大小。但是我不能反复移动这个形状。我想我需要使用计时器 class。我自己已经尝试了 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
class
actionPerformed()
方法