[英]Trouble calling a JAVA file from a JAVA File
我對 java 相當陌生,並且無法將我按照教程編碼的迷你網球游戲調用到另一個 java 文件中。 本質上,主文件中的一個按鈕將調用我的游戲並將其顯示在另一個JFrame
中。 我無法打開我的游戲框架,我知道這與我的游戲代碼布局有關,但我嘗試重新排列,但我無法調用它,因為主要的 function 拋出一個中斷的異常,因為那里有一個線程保持游戲循環。 我會在我的主程序中添加什么來調用它,如何修改我的迷你網球游戲以使其能夠被調用? 基本上,我怎樣才能修改下面的代碼以便能夠使用Game2 game = new Game2();
在另一個程序中? 還是有其他方法?
@SuppressWarnings("serial")
public class Game2 extends JPanel {
Ball ball = new Ball(this);
Racquet racquet = new Racquet(this);
int speed = 1;
private int getScore() {
return speed - 1;
}
public Game2() {
addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
racquet.keyReleased(e);
}
@Override
public void keyPressed(KeyEvent e) {
racquet.keyPressed(e);
}
});
setFocusable(true);
Sound.BACK.loop();
}
private void move() {
ball.move();
racquet.move();
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
ball.paint(g2d);
racquet.paint(g2d);
g2d.setColor(Color.GREEN);
g2d.setFont(new Font("Verdana", Font.BOLD, 30));
g2d.drawString(String.valueOf(getScore()), 10, 30);
}
public void gameOver() {
Sound.BACK.stop();
Sound.GAMEOVER.play();
JOptionPane.showMessageDialog(this,
"You caught it this many times " + getScore(),
"Game Over",
JOptionPane.YES_NO_OPTION);
System.exit(ABORT);
}
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Catch the Snowball");
Game2 game = new Game2();
frame.add(game);
frame.setSize(300, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true) {
game.move();
game.repaint();
Thread.sleep(10);
}
}
}
我不確定我是否理解正確,但如果你想訪問Game2 game = new Game2();
從另一個 class 您可以創建 static object 游戲。
public class Game2 extends JPanel {
public static Game2 game;
...
然后你需要初始化它。
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Catch the Snowball");
game = new Game2();
然后你可以通過
Game2.game.something();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.