# GUI erstellen für Text Adventure



## SolidGee (16. Okt 2016)

Hej Leute,
ich möchte ein Textbasiertes Spiel für Smartphones programmieren (in etwa so wie Lifeline).
Ich habe die Story schon so gut wie fertig geschrieben und kann es lediglich in der Konsole spielen. Ich habe danach ein GUI gemacht, jedoch kann ich nur z.B. einen Satz dort anzeigen lassen und wenn ich danach auf einen der Buttons (sind immmer zwei Buttons, weil man immer zwei Entscheidungen treffen kann) drücke, erscheint ein neuer Satz, wie es auch sein sollte, nur weiß ich leider nicht wie ich mehre Sätze nach dem Knopfdruck in das GUI bekomme. Dazu weiß ich auch nicht wie ich die Aufschrift der Buttons nach dem drücken ändern kann.
Ich möchte quasi die Konsole im GUI haben und die Buttons sollen dann sobald es eine Entscheidung zu treffen gibt erscheinen. Kann mir da bitte jemand helfen?

Hier mein bisheriger Code für das GUI:


```
package GUI;

import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class GUITA extends JFrame
{

    JLabel text1, text2;
   
    JButton button1, button2;
   
    public GUITA()
    {
        setVisible(true);    //sichtbarkeit
        setSize(500, 300);   //Größe des Frames
        setDefaultCloseOperation(EXIT_ON_CLOSE);    //closed das Fenster (ordentlich)
        setLocationRelativeTo(null);    //setzt in die Mitte
        setTitle("Überschrift");  //titel des names
        setResizable(false);  //true-> kann man maximieren und verkleiner und vergrößern, false -> bleibt wie man es programmiert hat (nicht verstellbar)
        setLayout(null);
       
        //text im Fenster
        text1 = new JLabel("Satz1"); //text im fenster
        text1.setBounds(200, -18, 230, 60);  //größe des textes im Fenster
        Font schrift = new Font("serif", Font.BOLD, 15);    //Schriftart größe, dicke, kursiv...
        text1.setFont(schrift);
        add(text1);   //computer "addet" den Text und steht somit im fenster
       
       
        //text 2
        text2 = new JLabel("Satz2"); //text 2 unter dem ersten
        text2.setBounds(15, 30, 500, 60);//größe des 2.textes
        Font schrift2 = new Font("serif", Font.BOLD, 15);
        text2.setFont(schrift);
        add(text2);
       
        //der 1. Button
        button1 = new JButton("Antwort1");//Name des buttons
        button1.setBounds(10, 210, 215, 50);         //größe, höhe, lage des Buttons
        button1.addActionListener(new DerListener());
        add(button1);   //computer "addet" den Button und steht somit im fenster
       
       
        //Für den 2. Button unten rechts
        button2 = new JButton("Antwort2");
        button2.setBounds(270, 210, 215, 50);
        add(button2);
       
    }

}
```

MfG Gee


----------



## Robat (16. Okt 2016)

Hey,

mehrere Sätze bekommst du zb. so:


```
StringBuilder sb =newStringBuilder(64);
                sb.append("<html>Das ist mein Erster Satz.").
                                append("  Was eine tolle").
                                append("Geschichte das doch ist.</html>");

                JLabel label =newJLabel(sb.toString());
```


Ich weiß nicht wie dein "_DerListener()"_ aussieht, aber i.d.R. veränderst du den Text eines Buttons mit:

```
meinSuperCoolerButton.setText("Toll");
```

Gruuß
Robert


----------



## Tobse (16. Okt 2016)

Text der Buttons ändern: JButton#setText

Konsole in der GUI: Siehe JTextArea


----------



## SolidGee (16. Okt 2016)

Hey,
erstemal vielen dank für die Antworten!
Jedenfalls meinte ich wie ich den Text des Buttons nach dem drücken ändern kann.

Greets Gee


----------



## Tobse (16. Okt 2016)

Man reagiert auf den Button-Druck mit einem ActionListener (siehe JButton#addActionListener). Den Text ändert nach dem Druck genau so wie immer: mit JButton#setText


----------

