# Visual Story programieren/hilfe



## Constikri (12. Feb 2016)

Hi, ich bin Anfänger im Java programmieren und hab es mehr schlecht als recht durch ein Buch und das Internet gelernt und möchte jetzt für ein Schulprojekt eine Visual Story programmieren.
Ich hatte mir das so vorgestellt, das man in einem BorderLayout in der Mitte ein Bild hat, oben die Geschichte erzählt wird, an den Seiten man, falls nötig, Entscheidungen treffen kann und unten der weiter Button ist. Bis jetzt funktioniert der Button leider noch nicht und ich weis auch nicht, wie genau ich die Texte speichern soll und die Referenzen dazu erstellen kann. Ich fände es toll wenn mir Jemand helfen könnte.


----------



## kneitzel (12. Feb 2016)

Also die GUI ist bei mir immer erst recht weit hinten bei der Entwicklung.

Du musst immer zuerst ganz klar wissen, was Du wie machen willst (Dabei ist dann egal, was wie angezeigt wird). Die notwendigen Daten musst Du dabei dann auch identifizieren und alle Aktionen darauf. Dann kannst Du die Business-Logik entwickeln und wenn das soweit durch ist, dann ist die Entwicklung der GUI fast nur noch Nebensache.

Ohne genau zu wissen, was Du an Daten brauchst, wird man Dir kaum etwas bezüglich des Speicherns sagen. Es gibt viele Möglichkeiten. Eine Möglichkeit könnte eine Datenbank sein. Oder Du speicherst etwas in XML Dateien. Das sind recht übliche Methoden.

Und bezüglich des Buttons: Ohne Code und ohne Fehlermeldungen kann man da nicht sagen, wieso der nicht funktioniert. Aber ich würde die Entwicklung auch schon anders aufziehen.

Konrad


----------



## Constikri (12. Feb 2016)

Danke erstmal, hier hab ich meinen bisherigen Code, er funktioniert soweit, mit Ausnahme, das nichts passiert wenn man auf den Button klick:

```
import javax.swing.*;
import java.awt.*;
import java.net.URL;
import java.awt.event.*;


public class Game extends JFrame {
    Container c;
    Label f1[] = new Label[3];
    Label f2[] = new Label[3];
    private JButton weiter = new JButton("weiter");
  
    URL url2 = getClass().getResource("/**hier blid*/");
    Icon bild2 = new ImageIcon(url2);
    JLabel label2 = new JLabel(bild2);
      
    public Game(){
        c = getContentPane();
        c.setLayout(new BorderLayout());


        URL url1 = getClass().getResource("/**hier bild*/");
        Icon bild1 = new ImageIcon(url1);
        JLabel label1 = new JLabel(bild1);
      
    
      
        ButtonListener bl = new ButtonListener();
        weiter.addActionListener(bl);
                    
        f1[0] = new Label("Text");
        f1[1] = new Label("Text");
        f1[2] = new Label("Text");


        f2[0] = new Label("Text");
        f2[1] = new Label("Text");
        f2[2] = new Label("Text");
      
         for (int i = 0; i < 5; i++){
         }


        c.add(f1[0], BorderLayout.NORTH);
        c.add(weiter, BorderLayout.SOUTH);
        c.add(f1[1], BorderLayout.EAST);
        c.add(f1[2], BorderLayout.WEST);
        c.add(label1, BorderLayout.CENTER);
      
    }


    class ButtonListener implements ActionListener, ContainerListener {
        public void actionPerformed(ActionEvent e){
        if (e.getSource() == weiter){
            componentRemoved(ContainerEvent);
        } 
      }
      public void componentAdded(ContainerEvent e){
        
      }
      public void componentRemoved(ContainerEvent e){
        c.add(f2[0], BorderLayout.NORTH);
        c.add(f2[1], BorderLayout.EAST);
        c.add(f2[2], BorderLayout.WEST);
        c.add(weiter, BorderLayout.SOUTH);
        c.add(label2, BorderLayout.CENTER);
      }
  
    public static void main(String[] args){
        Game fenster = new Game();
        fenster.setTitle("A Fairytale");
        fenster.setSize(1200,800);
        fenster.setVisible(true);
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
    } 
}
```
Es soll Quasi ein komplet visuelles Programm sein, welches durch den "weiter" Button den Inhalt ändert


----------



## Blender3D (12. Feb 2016)

Um Code einzufügen klicke auf das Symbol und wähle Code einfügen.


----------



## Blender3D (12. Feb 2016)

kneitzel hat gesagt.:


> Also die GUI ist bei mir immer erst recht weit hinten bei der Entwicklung


Er hat recht du zäumst das Pferd von hinten auf.
1) Nimm Papier und male Dir grob den Ablauf Deiner Geschichte auf.
2) Überlege Dir welche Elemente Du benötigst. Hintergrundbilder, Gegenstände, Verbindungen zwischen den Bildern etc.
3) Versuche dies Dinge in Klassen abzubilden
4) Verbinde diese


----------



## Constikri (12. Feb 2016)

OK danke, ich versuch das mal


----------

