Добрый вечер, я сейчас пытаюсь сделать короткую текстовую ошибку. Проблема заключается в том, что я не знаю, как я должен подключить графический интерфейс к истории. К этому моменту все, что я делал, было простым: «когда эта кнопка нажата, измените эту метку» и так далее, но теперь мне нужно получить текст из графического интерфейса, чтобы история могла продолжаться, и вот тут начинается моя проблема. Чтобы получить значения легко, но я не знаю, как правильно работать с ними, история должна ждать ввода, а затем продолжить на основе ввода, все работает на консоли, и я не знаю, как это сделать.Подключение с графическим интерфейсом
Edit: Так что мой вопрос, как я могу использовать вход TextField для продвижения в истории есть три вещи, которые я не знаю, и хотел бы узнать: 1. положили историю на удержание до входа сделано 2. использовать этот вход правильно продвигаться в истории 3. показать правильную историю в ярлыке
это два моих номера классов
package Locations;
import java.util.ArrayList;
import java.util.Scanner;
import xmlModul.XmlLoader;
public class GameTile00 extends SuperLocation{
XmlLoader loader = new XmlLoader();
GameTile01 next = new GameTile01("Raum2","zweiter Raum");
//später character für inventar einfügen
ArrayList<String> items = new ArrayList();
Scanner s = new Scanner(System.in);
public GameTile00(String Name, String Beschreibung) {
super(Name, Beschreibung);
}
@Override
public void Storytelling() {
story1();
}
public void story1(){
String story1 = "<html>Du wachst auf in einem Raum der dir gänzlich unbekannt ist.<br>"
+ "Alles was du siehst ist ein Teller mit Keksen, daneben ein Schlüssel<br>"
+ "Deine Möglichkeiten sind begrenzt, schließt du die Tür auf, oder isst du die Kekse?(Essen/Aufschließen)";
System.out.println(story1);
String eingabe = s.next();
if(eingabe.equalsIgnoreCase("Essen")){
System.out.println("Du fühlst dich zwar erfrischt, jedoch hast du jetzt durst und sitzt im Raum...");
}
else if(eingabe.equalsIgnoreCase("Aufschließen")){
System.out.println("du nimmst deinen Mut zusammen und gehst in den nächsten raum.");
next.Storytelling();
}
else{
System.out.println("hö?");
}
}
и
package Locations;
import java.util.ArrayList;
import java.util.Scanner;
import xmlModul.XmlLoader;
public class GameTile01 extends SuperLocation{
XmlLoader loader = new XmlLoader();
//später character für inventar einfügen
GameTile02 west = new GameTile02("Raum west","West Raum");
GameTile03 ost = new GameTile03("Raum ost","Ost Raum");
ArrayList<String> items = new ArrayList();
Scanner s = new Scanner(System.in);
public GameTile01(String Name, String Beschreibung) {
super(Name, Beschreibung);
}
@Override
public void Storytelling() {
story1();
}
public void story1(){
String story1 = "<html>im neuen raum ist es schwarz doch findest du durch ertasten einen Lichtschalter <br>"
+ "ein leerer raum erstreckt sich mit zwei türen, wohin gehst du? (westen, osten)</html>";
System.out.println(story1);
String eingabe = s.next();
if(eingabe.equalsIgnoreCase("Osten")){
System.out.println("Was sich wohl im osten befindet");
ost.Storytelling();
}
else if(eingabe.equalsIgnoreCase("Westen")){
System.out.println("was sich wohl im westen befindet");
west.Storytelling();
}
else{
System.out.println("hö?");
}
}
мой графический интерфейс атм только TextField, чтобы получить вход, кнопка для отправки ввода и этикетки, чтобы показать эту историю
спасибо заранее.
Вы не знаете, как это сделать, и так в чем ваш вопрос? – user3437460
Мне жаль, что я не знал, как я могу поставить его в вопрос. Надеюсь, я мог бы сделать его немного яснее. –
IOC - инверсия управления. Взгляните на ** ActionListener **. Если вы используете это, вам не нужно переносить историю на удержание, потому что вы даете контроль над пользователем. После того, как он внес свой вклад, вы получите контроль и сделанный ввод. Вы можете использовать это, чтобы обновить историю на экране. – mike