※ ChatGPTを利用し、要約された質問です(原文:画面遷移について困ってます。)
画面遷移について困ってます
このQ&Aのポイント
画面遷移の実装について困っている場合、以下のようなタイトルを考えることができます。
画面遷移の実装について困っている方への解決方法をまとめました。
Javaでの画面遷移の実装について、注意点と解決方法をまとめました。
TITLE →(Enterクリック)→ GAME
というふうにしたいのですが…できません><どこがダメなんでしょうか。
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JavaGame3 {
public static void main(String age[]) {
JFrame frame = new JFrame();
frame.setTitle("ゲームフレーム");
frame.setSize(500, 550);
frame.setLocation(1000, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
Testpanel panel = new Testpanel();
frame.add(panel);
}
}
class Testpanel extends JPanel implements KeyListener {
static final int TITLE = 0; // タイトルモード
static final int GAME = 1; // ゲームモード
int mode;
public Testpanel() {
setBackground(Color.black);
addKeyListener(this);
mode = TITLE; // 最初はタイトル画面
}
private void drawTitle(Graphics g) {
g.setColor(Color.blue);
g.drawString("test1", 165, 150);
g.setColor(Color.white);
g.drawString("Hit Enter Key!", 150, 350);
}
private void drawGameOver(Graphics g) {
g.setColor(Color.white);
g.fillRect(5,120,240,30);
g.setColor(Color.red);
g.drawString("test2", 85, 140);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(mode == TITLE) {
drawTitle(g);
} else if(mode == GAME) {
drawGameOver(g);
}
}
public void keyPressed(KeyEvent e){
int key = e.getKeyCode();
if(mode == TITLE) {
switch(key) {
case KeyEvent.VK_ENTER:
mode = GAME;
break;
}
}repaint();
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
}
お礼
詳しくありがとうござます!