Как я могу интегрировать Swing в простую текстовую приключенческую игру?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу интегрировать Swing в простую текстовую приключенческую игру?

Сообщение Anonymous »

Недавно я сделал текстовую приключенческую игру под названием DazzleQuest, которая полностью работает в консоли/терминале разработчика. Это вовлекает моих друзей как персонажей, поэтому я хотел показать это им и получить опыт работы с Java, передавая функциональность командной строки и вывода из консоли в простой интерфейс Swing, состоящий из JTextArea > показать вывод игры и jtextfield , с ActionListener , Commands Coders от пользователя. run () и handlecommand () , который, как я полагаю, мне нужно интегрировать с моим классом Frame и его подклассом Textfieldhandler [который расширяет ActionListener ]. мне интересно, в целом, как лучше всего интегрировать эти методы и классы. Я бы поделился своим кодом, но не уверен, сколько и что именно дать. Если вы думаете, что можете ответить на мой вопрос, но нуждаетесь в примере того, что у меня есть, скажите, пожалуйста, так. Даже псевдокод как ответ будет оценен. Спасибо! Понимание этого может быть очень полезно для моего образования как программиста. Это мой основной класс DazzleQuest :

Код: Выделить всё

public class DazzleQuest {

public void run() {
listCommands();
for (;;) {
StdOut.println(new StringBuilder("You are in ").append(currentRoom.getName()).append(".").toString());
StdOut.println(new StringBuilder("You can go to: ").append(currentRoom.listExits()).toString());
StdOut.print("> ");
handleCommand(StdIn.readLine());
StdOut.println();
}

public void handleCommand(String line) {
String[] words = line.split(" ");
if (words[0].equals("look"))
look();
}
}

}
И вот моя текущая jframe настройка, в кадре class:

Код: Выделить всё

import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JTextArea;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Frame extends JFrame {

public static JTextField field;
public JTextArea area;

public Frame() {
setLayout(new FlowLayout());

area = new JTextArea(20, 40);
area.setEditable(false);

field = new JTextField(20);
add(area);
add(field);
pack();
setVisible(true);

TextFieldHandler handler = new TextFieldHandler();

field.addActionListener(handler);
}

public class TextFieldHandler implements ActionListener{

public void actionPerformed(ActionEvent event)
{
String line = field.getText();
area.append(line + "\n");
field.setText("");
}
}

public static void main(String args[]) {

Frame test = new Frame();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Я знаю, как печатать вывод в jtextarea вместо консоли. Моя проблема заключается в том, как именно получить handlecommand () для работы с ActionPerformed () в классе Frame , или я должен настроить слушатель действий в основном классе или что -то в этом роде. Любые примеры реализации будут высоко оценены.

Подробнее здесь: https://stackoverflow.com/questions/387 ... nture-game
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»