そこで、GUI を使用するようにコンソール アプリケーションを変更したいと思います (実行するたびにコンソールに「java -jar」と入力するのが面倒で、Java Web Start を使用したいため)。どこから変換を開始するかさえ完全にはわかりません. これが私のプログラムの仕組みです。
メインファイルは次のようになります。
package vector;
import java.io.*;
public class Vector extends GameFile
{
public static void main(String[] args)
throws IOException
{
int gameMode = 1; /*1: Return to title screen.
2: Start a new game.
3: Load from a checkpoint.
4: Quit the game.*/
while(true){
switch(gameMode)
{
default:
gameMode = intro.transition();
break;
case 2:
eventHandler.next(gameMode);
break;
case 3:
gameMode = ls.loadCheckpoint();
eventHandler.next(gameMode);
break;
case 4:
ut.print("Goodbye.");
return;
}
}
}
}
(ut.print は System.out.println のショートカットです)
これは、他のほとんどのファイルと同様に、GameFile から拡張されています。
package vector;
import iostream.*;
import util.*;
import pda.*;
public class GameFile {
public static BasicUtils ut = new BasicUtils();
public static IntroScreen intro = new IntroScreen();
public static Checkpoint ls = new Checkpoint();
public static EventHandler eventHandler = new EventHandler();
public static ColdStorage events = new ColdStorage();
public static PDA pda = new PDA();
}
これにより、コード内で簡単に参照できます。イントロ画面の仕組みは次のとおりです。
package iostream;
/*IMPORT RELEVANT FILES*/
import vector.*;
public class IntroScreen extends GameFile{
public int transition(){
ut.print("--- --- ------------ ------------ ------------ -------- ----------- ");
ut.print("*** *** ************ ************ ************ ********** *********** ");
ut.print("--- --- ---- --- ------------ ---- ---- ---- --- ");
ut.print("*** *** ************ *** **** *** *** ********* ");
ut.print("--- --- ------------ --- ---- --- --- --------- ");
ut.print(" ******** **** *** **** **** **** **** **** ");
ut.print(" ------ ------------ ------------ ---- ---------- ---- ---- ");
ut.print(" **** ************ ************ **** ******** **** **** ");
ut.print("-----------------------------------------------------------------------------");
ut.print("(1) BEGIN NEW GAME - (2) LOAD CHECKPOINT - (3) QUIT");
int errsPrinted=0;
while(true)
{
int menu;
try {
menu = ut.input.nextInt();
switch(menu)
{
case 1:
return 2; // Start game.
case 2:
return 3; // Load game.
case 3:
return 4; // Quit game.
}
}
catch(Exception e) {
ut.print("That's not a valid option.");
errsPrinted++;
if(errsPrinted>9)
{
return 4; // Quit game.
}
}
}
}
}
コードの残りの部分はそれほど違いはありません。画面入力と printlns のショートカットは問題ありません。しかし、どういうわけか、これらすべてを GUI にまとめて、いくつかの異なるファイルから操作できるようにする方法を見つける必要があります。これを開始する方法についてのヒントはありますか?私は少し途方に暮れています。