有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java帮助创建带有动画的复杂Swing GUI

这是我第一个与学校无关的项目。我有几个问题希望你们能轻松回答。我有三个问题。如何将我的按钮添加到JFrame中,即使它与按钮位于不同的类中

还有,我该如何制作我的形状,以及十个其他的形状,它们彼此相隔大约四分之一秒,这样我就有了一系列的形状

那么,我该如何强迫他们沿着一条预定的路径前进,而这条路径的规模相当于有人在拖动盒子

非常感谢你们的阅读和帮助。以下是我的三门课:

游戏玩家。爪哇

import javax.swing.JFrame;

public class gameRunner {
public static void main(String args []){
    Enemy e = new Enemy();
    Buttons b = new Buttons();
    JFrame f = new JFrame();
    f.add(b);
    f.add(e);
    f.setVisible(true);
    f.setSize(1300, 700);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setTitle("Tower Defense");
}
}

敌人。爪哇

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Rectangle2D;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Enemy extends JPanel implements ActionListener {

    Timer t = new Timer(5, this);

    double x = 0;
    double y = 0;
    double velX = 3;
    double velY = .5;

    int health = 10;

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        Rectangle2D square = new Rectangle2D.Double(x, y, 10, 10);
        g2.fill(square);
        t.start();
    }

    public double adjustHorizontalSpeed() {
        y += velY;
        return y;
    }

    public double adjustVerticalSpeed() {
        x += velX;
        return x;
    }

    public void actionPerformed(ActionEvent e) {
        adjustHorizontalSpeed();
        adjustVerticalSpeed();
        repaint();
    }

}

纽扣。爪哇

import java.awt.*;
import java.awt.event.*;

import javax.swing.JButton;
import javax.swing.JFrame;


public class Buttons extends JFrame implements ActionListener{

    private JButton shoot;


public Buttons(){
    shoot = new JButton("Shoot!");
    shoot.setBounds(50,60,50,100);
    shoot.addActionListener(this);
}


@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub

}
}

共 (1) 个答案

  1. # 1 楼答案

    对于预定路径,您可能应该让它们按照包含窗格的比例移动/调整大小。使用布局管理器,假设它们位于自己的JPanel中,窗格应该自动缩放,因此当窗口调整大小时,形状将正确调整大小和移动