2015-02-15 4 views
0

Добрый вечер, я сейчас пытаюсь сделать короткую текстовую ошибку. Проблема заключается в том, что я не знаю, как я должен подключить графический интерфейс к истории. К этому моменту все, что я делал, было простым: «когда эта кнопка нажата, измените эту метку» и так далее, но теперь мне нужно получить текст из графического интерфейса, чтобы история могла продолжаться, и вот тут начинается моя проблема. Чтобы получить значения легко, но я не знаю, как правильно работать с ними, история должна ждать ввода, а затем продолжить на основе ввода, все работает на консоли, и я не знаю, как это сделать.Подключение с графическим интерфейсом

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, чтобы получить вход, кнопка для отправки ввода и этикетки, чтобы показать эту историю

спасибо заранее.

+0

Вы не знаете, как это сделать, и так в чем ваш вопрос? – user3437460

+0

Мне жаль, что я не знал, как я могу поставить его в вопрос. Надеюсь, я мог бы сделать его немного яснее. –

+0

IOC - инверсия управления. Взгляните на ** ActionListener **. Если вы используете это, вам не нужно переносить историю на удержание, потому что вы даете контроль над пользователем. После того, как он внес свой вклад, вы получите контроль и сделанный ввод. Вы можете использовать это, чтобы обновить историю на экране. – mike

ответ

0

То, что вы просите, не так сложно реализовать.

@ 1. Для этого вы можете использовать логическое значение. Если это значение истинно, тогда история запускается, когда она ложна, а история не запущена. Может быть, обработчик события, который устанавливает логическое значение в false, когда текстовое поле выбрано.

@ 2 Не совсем уверен в этом, я предполагаю, что вы имеете в виду, что вы проверяете входное значение на список значений, int или строк, он зависит от необходимого ответа.

@ 3 Класс Label имеет встроенные функции для этого. Для этого это будет label.setText (string);

Я надеюсь, что это поможет вам, если вам нужна помощь с конкретными разделами кода, пожалуйста, отправьте этот код. Если вы не знаете, как начать, а затем посмотрите в Интернете, есть много учебников о том, как обрабатывать кнопочные события и что-то подобное с целью души научить вас чему-то.

+0

спасибо, я не думал о булевом ^^ ' Я знаю .setText() funktion, я не такой новый, но он не обнаруживает, что это моя проблема. большое спасибо x3 –

Смежные вопросы