簡體   English   中英

連接GUI

[英]Connecting with GUI

晚上好,我正在努力做一個簡短的Textadventure我的問題是我不知道我應該如何連接GUI與故事。 到目前為止,我所做的一切都很簡單“當按下這個按鈕時,改變這個標簽”和這樣的東西,但現在我必須從GUI獲取文本以便故事可以繼續,這就是我的問題開始的地方。 要獲得價值很容易,但我不知道如何正確使用它們,故事應該等待輸入,然后繼續根據輸入一切在控制台上工作,我不知道如何繼續。

編輯:所以我的問題是我如何使用文本字段輸入來推進故事中有三件我不知道並想學習的事情: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ö?");
    }
}

我的GUI只有一個Textfield來獲取輸入,一個按鈕來發送輸入,一個Label來顯示故事

先感謝您。

你問的問題並不難實現。

@ 1。 你可以使用布爾值。 如果它的值是真的則故事正在運行,當它是假的時候故事就沒有運行。 可能是一個eventhandler,它在選擇文本字段時將布爾值設置為false。

@ 2不完全確定這個,我假設你的意思是你根據值列表,int或字符串測試輸入值,它可能取決於所需的答案。

@ 3 Label類具有內置函數。 為此,它將是label.setText(string);

我希望這對您有所幫助,如果您需要特定代碼部分的幫助,請發布該代碼。 如果你不知道如何開始然后在網上看,有很多教程如何處理按鈕事件和類似的東西,以靈魂的目的來教你一些東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM