-1
飛行機をボード全体に移動したいです。私は「私は(真)setFocusableまし 前にそれをやったので、 これは非常に単純である必要があり、私はのKeyListenerを追加しました、と私は私が何か分からないKeyListenerが応答しません
)(requestFocusInWindowもしまし間違っ
キーが押され、それも私が「こんにちは」プリントアウトしようとすることでテスト
KeyPressed方法を入力しないであろう。
package game;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class GUI{
/* Author: Carl Zhang
* Date:
*
*/
//player's username
public static String user;
//classes
public static GUI gui;
public static LoginPanel lp;
public static MenuPanel mp;
public static GamePanel gp;
public static HighscorePanel hp;
public static InstructionPanel ip;
//dimensions
private static final int WIDTH = 500;
private static final int HEIGHT = 500;
public GUI() {
JFrame frame = new JFrame("ZCraft");
frame.setSize(WIDTH, HEIGHT);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
//adding JPanels
lp = new LoginPanel();
frame.add(lp);
mp = new MenuPanel();
frame.add(mp);
gp = new GamePanel();
frame.add(gp);
ip = new InstructionPanel();
frame.add(ip);
hp = new HighscorePanel();
frame.add(hp);
frame.setVisible(true);
}//end constructor GUI()
public static int getWidth() {
return WIDTH;
}//end getWIDTH()
public static int getHeight() {
return HEIGHT;
}//end getHEIGHT
public static void main(String[] args) {
gui = new GUI();
}//end main
}//end class GUI
package game;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.Timer;
public class GamePanel extends JPanel implements ActionListener, KeyListener {
public static GamePanel gp;
private boolean up = false;
private boolean right = false;
private boolean down = false;
private boolean left = false;
private ZCraft player;
private JButton pause, back;
public GamePanel(){
//timer
Timer timer = new Timer(5, this);
setSize(GUI.getWidth(), GUI.getHeight());
setBackground(Color.BLACK);
setLayout(null);
setVisible(false);
/*
pause = new JButton("Pause");
pause.setHorizontalAlignment(SwingConstants.CENTER);
pause.setBounds();
pause.setBackground(Color.GREEN);
pause.setForeground(Color.RED);
pause.setOpaque(true);
pause.setBorderPainted(false);
pause.addActionListener(this);
add(pause);
back = new JButton("Back");
back.setHorizontalAlignment(SwingConstants.CENTER);
back.setBounds();
back.setBackground(Color.GREEN);
back.setForeground(Color.RED);
back.setOpaque(true);
back.setBorderPainted(false);
back.addActionListener(this);
add(back);
*/
start();
timer.start();
setFocusable(true);
addKeyListener(this);
requestFocusInWindow();
//setFocusTraversalKeysEnabled(false);
//requestFocus();
}//end constructor GamePanel()
public void start() {
player = new ZCraft(GUI.user);
}//end start()
public void update() {
if(up) {
player.moveYAxis(true);
}else {
player.moveYAxis(false);
}
if(right) {
player.moveXAxis(true);
}else {
player.moveXAxis(false);
}
}//end update()
public void render(Graphics g) {
player.render(g);
}//end render(Graphics g)
protected void paintComponent(Graphics g) {
super.paintComponent(g);
render(g);
}//end paintComponent(Graphics g)
@Override
public void actionPerformed(ActionEvent e) {
update();
repaint();
}//end actionPerformed(ActionEvent e)
@Override
public void keyTyped(KeyEvent e) {}//end keyTyped(KeyEvent e)
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(code == KeyEvent.VK_UP) {
up = true;
}
if(code == KeyEvent.VK_RIGHT) {
right = true;
}
if(code == KeyEvent.VK_DOWN) {
down = true;
}
if(code == KeyEvent.VK_LEFT) {
left = true;
}
if(code == KeyEvent.VK_SPACE) {
//player.shoot();
}
if(code == KeyEvent.VK_1) {
}
}//end keyPressed(KeyEvent e)
@Override
public void keyReleased(KeyEvent e) {
int code = e.getKeyCode();
if(code == KeyEvent.VK_UP) {
up = false;
}
if(code == KeyEvent.VK_RIGHT) {
right = false;
}
if(code == KeyEvent.VK_DOWN) {
down = false;
}
if(code == KeyEvent.VK_LEFT) {
left = false;
}
if(code == KeyEvent.VK_SPACE) {
//player.shoot();
}
}//end keyReleased(KeyEvent e)
}//end class GamePanel
を私はちょうど方法を入力したい、私は後で移動の事を変更します
助けてください!これは私の合計です –
いいえ[mcve]、なぜですか?コードを実行してテストするにはどうすればよいですか? Key Bindingsの使用を推奨する類似の質問とはどのように違いますか? –