Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与GUI连接_Java_Swing_User Interface - Fatal编程技术网

Java 与GUI连接

Java 与GUI连接,java,swing,user-interface,Java,Swing,User Interface,晚上好,我正在尝试做一个简短的文本冒险。我的问题是我不知道如何将GUI与故事联系起来。 到目前为止,我所做的只是简单的“按下此按钮时,更改此标签”之类的事情,但现在我必须从GUI获取文本,这样故事才能继续,这就是我的问题开始的地方。 获取这些值很容易,但我不知道如何正确使用它们,故事应该等待输入,然后根据输入继续。控制台上的一切工作正常,我不知道如何继续 编辑: 所以我的问题是如何使用textfield输入在故事中前进 有三件事我不知道,我想学习: 1.暂停报道,直到有人输入 2.使用此输入权限

晚上好,我正在尝试做一个简短的文本冒险。我的问题是我不知道如何将GUI与故事联系起来。 到目前为止,我所做的只是简单的“按下此按钮时,更改此标签”之类的事情,但现在我必须从GUI获取文本,这样故事才能继续,这就是我的问题开始的地方。 获取这些值很容易,但我不知道如何正确使用它们,故事应该等待输入,然后根据输入继续。控制台上的一切工作正常,我不知道如何继续

编辑: 所以我的问题是如何使用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ö?");
        }
    }
包装位置;
导入java.util.ArrayList;
导入java.util.Scanner;
导入xmlModul.XmlLoader;
公共类GameTile00扩展了超级位置{
XmlLoader=新的XmlLoader();
GameTile01 next=新的GameTile01(“Raum2”、“zweiter Raum”);
//发明家艾因弗根
ArrayList items=新建ArrayList();
扫描仪s=新的扫描仪(System.in);
public GameTile00(字符串名称,字符串Beschreibung){
super(名称:Beschreibung);
}
@凌驾
公开讲故事{
故事1();
}
公共图书馆1(){
String story1=“在gänzlich unbekannt ist.中的wachst auf
+“所有人都是我的出纳员,我是凯克森,我是施吕塞尔”
” +“Deine Möglichkeiten sind begrenzt,schließt du die tür auf,order isst du die Kekse?(埃森/奥夫施利恩)”; System.out.println(故事1); 字符串eingabe=s.next(); if(eingabe.equalsIgnoreCase(“埃森”)){ System.out.println(“Du fühlst dic zwar erfrischt,jedoch拥有Du jetzt durst and sitzt im Raum…”); } 否则如果(eingabe.equalsIgnoreCase(“Aufschließen”)){ 系统输出打印(“在nächsten raum中的数据和数据”); 接下来,讲故事(); } 否则{ System.out.println(“hö?”); } }

包装位置;
导入java.util.ArrayList;
导入java.util.Scanner;
导入xmlModul.XmlLoader;
公共类GameTile01扩展了超级位置{
XmlLoader=新的XmlLoader();
//发明家艾因弗根
GameTile02 west=新GameTile02(“劳姆西部”、“西劳姆”);
GameTile03 ost=新GameTile03(“Raum ost”、“ost Raum”);
ArrayList items=新建ArrayList();
扫描仪s=新的扫描仪(System.in);
public GameTile01(字符串名称,字符串Beschreibung){
super(名称:Beschreibung);
}
@凌驾
公开讲故事{
故事1();
}
公共图书馆1(){
String story1=“我是新劳姆,我是施瓦兹·多克在利希切特找到的最好的朋友
” +“你是我的朋友,我是你的朋友”(威斯汀,奥斯汀); System.out.println(故事1); 字符串eingabe=s.next(); 如果(eingabe.equalsIgnoreCase(“Osten”)){ System.out.println(“sich wohl im osten befinet”); ost.讲故事(); } 否则,如果(eingabe.equalsIgnoreCase(“Westen”)){ System.out.println(“sich wohl im westen befindet”); 讲故事(); } 否则{ System.out.println(“hö?”); } }
我的GUI只是一个获取输入的文本字段,一个发送输入的按钮和一个显示故事的标签


提前谢谢你。

你的要求并不难实现

@1.您可以为此使用布尔值。如果其值为true,则说明故事正在运行,如果为false,则说明故事没有运行。可能是一个eventhandler,在选择textfield时将布尔值设置为false

@2不完全确定,我假设你的意思是,你根据一系列值、int或字符串测试输入值,这可能取决于需要的答案

@3 Label类具有用于此的内置函数。为此,它将是Label.setText(字符串)


我希望这对您有所帮助,如果您需要有关特定代码部分的帮助,请发布这些代码。如果您不知道如何开始,请访问在线,这里有很多关于如何处理按钮事件和类似事件的教程,旨在教您一些东西。

您不知道如何继续,那么您的问题是什么?对不起,我很抱歉我不知道如何把它放在一个问题中,我希望我能把它弄清楚一点——控制反转。看看ActionListener。如果你利用它,你就不必把故事搁置,因为你给了用户控制权。在他输入后,你得到控制权和输入。你可以用它来更新故事托利出现在屏幕上。谢谢你,我没有想到布尔运算我知道.setText()函数我不是那么新,但它不会出现这是我的问题。非常感谢你
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ö?");
    }
}