Я пытаюсь сделать мини-игру, но сначала я узнаю, как оживить :) это будет 2D-игра. Итак, моя проблема в том, что я просто пытаюсь нарисовать прямоугольник своей работой, когда я пытаюсь оживить (я сделал много кода, но не работал :() его не работает.Java Swing Попробуйте сделать небольшую анимацию с прямоугольником
Кто-то может помочь мне исправить или добавить некоторые советы, как я могу попробовать сделать это.
public class Window extends JPanel implements ActionListener {
Timer tm = new Timer(5 , this);
int x2 = 0 , velX = 2;
static int x= 500;
static int y= 500;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(x2, 30, 30, 30);
tm.start();
}
public Window(){
JFrame f = new JFrame();
f.pack();
f.setTitle("Game");
f.setSize(x,y);
f.setVisible(true);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
}
/*public void paint(Graphics g){
Graphics2D g2d = (Graphics2D) g;
Rectangle rect = new Rectangle(50, 50, 50, 50);
g2d.translate(25, 25);
g2d.rotate(Math.toRadians(45));
g2d.draw(rect);
}*/
public static void main(String [] args) throws InterruptedException{
Game g = new Game();
g.setName("Test");
System.out.println(g.getName());
g.setScore();
}
@Override
public void actionPerformed(ActionEvent e) {
x2 = x2 + velX;
repaint();
}
}
Ваш код никогда не добавляет 'Window' к раме. Если вы все-таки добавите его, он отлично работает, насколько я могу судить. – resueman
Я рекомендую вам изменить название своего класса из «окна» на другое (например, MyWindow/userGUI/etc). Существует класс AWT под названием ['Window'] (https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html), это может дать вам некоторые проблемы в будущем. – Frakcool