statsButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
//Return the string "stats" to gameLoop() as cmd
}
});
public void gameLoop(){
Scanner lineScanner = new Scanner(System.in);
cmd = "";
System.out.print(getBoard().printBoard(false));
while (!cmd.equals("quit")) {
System.out.print(">");
Scanner wordScanner = new Scanner(lineScanner.nextLine());
if (wordScanner.hasNext()) {
cmd = wordScanner.next();
if (cmd.equals("board")) {
System.out.print(getBoard().printBoard(false));
} else if (cmd.equals("ships")) {
System.out.print(getBoard().printBoard(true));
} else if (cmd.equals("help")) {
printHelp();
} else if (cmd.equals("stats")) {
printStats();
} else if (cmd.equals("fire")) {
if(fire(wordScanner)) {
printStats();
cmd = "quit";
}
} else if (cmd.equals("quit")) {
} else if (!cmd.equals("")) {
System.out.println(ILLEGAL_COMMAND);
}
}
}
}
私がやっていることは、ユーザーがstatsButtonをクリックすると、gameLoopのString cmdが "stats"に変更されることです。 statsButtonとgameLoop()は2つの異なるクラスにあります。誰でも私にそれをする方法を教えてくれますか? (私はpipedreader/pipedwriterを試みた)と私はちょうどそれを得るように見えることはできません。JButtonからコンソールに入力を渡す
*私は基本的に、元のコンソールアプリケーションを変更せずに、自分のコンソールアプリケーションをGUIアプリケーションにしようとしています。
編集:私は、私が書いてみました何
Class textBased
PipedInputStream in = new PipedInputStream()
public void gameLoop(){
try{
in.connect(GUIclass.out);
Scanner lineScanner = new Scanner(in);`
Class GUIclass
PipedOutputStream out = new PipedOutputStream();
PrintWriter writer;
public GUIclass(){
final PrintWriter writer = new PrintWriter(out);
statsButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
writer.println("stats");
}
});
を試みたが、動作していないよう何。
crossposted http://www.daniweb.com/software-development/java/threads/393562 – mKorbel