Mensch ärgere dich nicht

Miraleni

Neues Mitglied
Hallo,

Ich programmiere grad mit meiner Gruppe für die Uni ein Mensch-ärgere-dich-nicht-Spiel.
Ich bin gerade dabei am Layout rumzubasteln und wollte eine Scene in die Stage setzen mit einer VBox und Größe und Farbe festlegen. Leider kommt immer die Fehlermeldung "No suitable constructor found"
Kann mir jemand weiterhelfen? Das wäre ganz lieb.

public void prozessInfo() {

Stage prozess = new Stage();
prozess.setTitle("Informationen");
prozess.initModality(Modality.WINDOW_MODAL);
Scene scene1 = new Scene (VBox Vprozess = new VBox;
prozess, 300, 275, Color.AQUAMARINE);
prozess.show();
}
 
N

nillehammer

Gast
Weiß nicht, welches Framework Du benutzt, aber das Konstrukt hier sieht merkwürdig aus:
Java:
Scene scene1 = new Scene (VBox Vprozess = new VBox; 
prozess, 300, 275, Color.AQUAMARINE);
Was willst Du damit erreichen? Soll das vielleicht so sein?
Java:
VBox vProzess = new VBox(prozess, 300, 275, Color.AQUAMARINE);
Scene scene1 = new Scene (vProzess);

P.S.
- Bei Posten von Code bitte die entsprechenden Tags (die Symbole über der Textbox) benutzen
- Beachtung von Codeconventions ist sehr empfehlenswert (hier: Variablen schreibt man mit kleinem Anfangsbuchstaben).
 
Zuletzt bearbeitet von einem Moderator:

insane80

Aktives Mitglied
Sollte sich um JavaFX 2 handeln.

Der Code müsste denke ich eher so aussehen (nicht ausprobiert):

Java:
public void prozessInfo() {
  Stage prozess = new Stage();
  prozess.setTitle("Informationen");
  prozess.initModality(Modality.WINDOW_MODAL);
  VBox vProzess = new VBox();
  Scene scene1 = new Scene (vProzess, 300, 275, Color.AQUAMARINE);
  prozess.setScene(scene1);
  prozess.show();
}
 

Miraleni

Neues Mitglied
Java:
// alle import Angaben
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import ProjektGullupfel2012.GUI;
import java.io.File;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.layout.VBoxBuilder;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.FileChooser;
import javafx.stage.Modality;
import javafx.stage.Stage;
import java.util.Random;

/**
 *
 * @author Marcello Sanasi
 */
// Controll_All Klasse, die den EventHandler implementiert hat
public class Controll_All implements EventHandler<ActionEvent> {

    // Referenz auf die GUI
    GUI gui;
    // Referenz auf das Spielfeld
    Spielfeld feld;
    // Button Array mit 11x11 Buttons
    Punkt punkt[][] = new Punkt[11][11];
    // Attribut Button ja 
    Button ja;
    // Attribut Button nein
    Button nein;
    // Attribut
    Stage exitStage;
    // Attribut
    Stage amountStage;
    // Attribut
    Button bestaetigen1;
    //
    Label labelFile;
    //
    Button neuSchreiben;
    //
    TextField txt1;
    //
    TextField txt2;
    //
    TextField txt3;
    //
    TextField txt4;
    // privates Attribut mit START-Wert Blau
    private int weristdran = Spielfeld.BLAU;

    /**
     *
     * @param gui
     */
    public Controll_All(GUI gui) {
        // Zugriff auf das Spielfeld
        this.gui = gui;
    }

    /**
     *
     * @param feld
     */
    public Controll_All(Spielfeld feld) {
        // Zugriff auf das Spielfeld
        this.feld = feld;
    }

    @Override
    /**
     *
     */
    public void handle(ActionEvent event) {
        //Debug-Ausgabe
        System.out.println(event.getSource());

        //wurde ein Knopf gedrückt?
        if (event.getSource() instanceof MenuItem) {
            //Debug-Ausgabe
            System.out.println("Gedrückt:" + ((MenuItem) event.getSource()).getId());

        }




        //Reagieren auf Menue
        if (event.getSource() instanceof MenuItem) {
            //Debug-Ausgabe
            System.out.println("Ausgewählt:" + ((MenuItem) event.getSource()).getId());


            if (((MenuItem) event.getSource()).getId().equals("Name")) {

                spielerErzeugen();
            }


            if (((MenuItem) event.getSource()).getId().equals("Exit")) {


                abbruchErzeugen();

            }

            if (((MenuItem) event.getSource()).getId().equals("Anleitung")) {


                anleitungErzeugen();

            }

            if (((MenuItem) event.getSource()).getId().equals("faq")) {


                faqErzeugen();

            }

            if (((MenuItem) event.getSource()).getId().equals("Entwickler")) {


                entwicklerInfo();

            }

            if (((MenuItem) event.getSource()).getId().equals("Projekt")) {


                projektInfo();

            }


            if (((MenuItem) event.getSource()).getId().equals("Prozess")) {


                prozessInfo();

            }

            if (((MenuItem) event.getSource()).getId().equals("Anzahl")) {


                spielerAnzahl();

            }

        } //Ende Menues

        // Reagieren auf Buttons
        if (event.getSource() instanceof Button) {
            //Debug-Ausgabe
            System.out.println("Ausgewählt:" + ((Button) event.getSource()).getId());

            if (((Button) event.getSource()).getId().equals("wuerfel")) {

                wuerfeln();


            }


            if (((Button) event.getSource()).getId().equals("agree")) {
                System.out.println(" Was für ein S******tag!");

                getName();


            }



            if (((Button) event.getSource()).getId().equals("ja")) {
                System.out.println(" Das ist alles s******e");
                System.exit(0);


            }


            if (((Button) event.getSource()).getId().equals("nein")) {
                System.out.println("Ich hasse JAVA");
                exitStage.close();

            }


            if (((Button) event.getSource()).getId().equals("File1")) {

                System.out.println("Jetzt kann man Bilder auswählen!");


                FileChooser fileChooser = new FileChooser();

                //Set extension filter
                FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("AVI files (*.jpg)", "*.jpg");
                fileChooser.getExtensionFilters().add(extFilter);

                //Show open file dialog
                File file = fileChooser.showOpenDialog(null);

                labelFile.setText(file.getPath());

            }

            if (((Button) event.getSource()).getId().equals("rewrite")) {
                System.out.println("Ups, da hat sich ein Fehler eingeschlichen!");

                txt1.clear();
                txt2.clear();
                txt3.clear();
                txt4.clear();

            }

            if (((Button) event.getSource()).getId().equals("Anzahl")) {
                System.out.println("Ups, da hat sich ein Fehler eingeschlichen!");

                txt1.clear();
                txt2.clear();
                txt3.clear();
                txt4.clear();

            }


        } //Ende Buttons

        // Reagieren auf Punkte
        if (event.getSource() instanceof Punkt) {
            // wer ist ueberhaupt dran?
            if (weristdran == Spielfeld.GELB) {
                
                System.out.println(" GELB ist am Zug!");
                if (((Punkt) event.getSource()).getId().equals("gelb1")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("gelb2")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("gelb3")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("gelb4")) {
                    ((Punkt) event.getSource()).setGraphic(null);

                }
            } else {
                System.out.println("Gelb ist nicht dran");
                weristdran = (weristdran + 1) % 4;
            }
            
             if (weristdran == Spielfeld.BLAU) {
                 
                 System.out.println(" BLAU ist am Zug!");
                if (((Punkt) event.getSource()).getId().equals("blau1")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("blau2")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("blau3")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("blau4")) {
                    ((Punkt) event.getSource()).setGraphic(null);

                }
            }
             else {
                System.out.println("Blau ist nicht dran");
                weristdran = (weristdran + 1) % 4;
            }
             if (weristdran == Spielfeld.ROT) {
                 
                 System.out.println(" ROT ist am Zug!");
                if (((Punkt) event.getSource()).getId().equals("rot1")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("rot2")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("rot3")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("rot4")) {
                    ((Punkt) event.getSource()).setGraphic(null);

                }
            }
             
              else {
                System.out.println("Rot ist nicht dran");
                weristdran = (weristdran + 1) % 4;
            }
             
              if (weristdran == Spielfeld.GRUEN) {
                  
                  System.out.println(" GRUEN ist am Zug!");
                if (((Punkt) event.getSource()).getId().equals("grün1")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("grün2")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("grün3")) {

                    ((Punkt) event.getSource()).setGraphic(null);
                }

                if (((Punkt) event.getSource()).getId().equals("grün4")) {
                    ((Punkt) event.getSource()).setGraphic(null);

                }
            }
              else {
                System.out.println("Grün ist nicht dran");
                weristdran = (weristdran + 1) % 4;
            }
            


        } // Ende Punkt




    }// Ende Handle Methode

    /**
     *
     */
    public void abbruchErzeugen() {
        // die Stage wird erstellt
        exitStage = new Stage();
        // Name für die Stage wird vergeben
        exitStage.setTitle("Beenden");
        //
        exitStage.initModality(Modality.WINDOW_MODAL);

        // eine Hbox wird erstellt
        HBox abbrechenbox = new HBox();
        //
        abbrechenbox.setPadding(new Insets(30, 30, 30, 25));
        //
        abbrechenbox.setSpacing(10);

        // die Hbox wird in die Scene gesetzt
        Scene anzahlscene = new Scene(abbrechenbox, Color.GOLD);


        // Button zum Abbrechen des Spiels wird erstellt
        ja = new Button("Ja, leider");
        // Id wird an den Button vergeben
        ja.setId("ja");
        // 
        ja.setOnAction(this);


        // Button zum Fortfahren des Spiels wird erstellt
        nein = new Button("Nein, doch nicht");
        // Id wird an den Button vergeben
        nein.setId("nein");
        //
        nein.setOnAction(this);

        // Text für die Hbox wird erstellt
        Text wirklich = new Text("Wollen Sie das Spiel wirklich abbrechen?");
        // Textgröße und -stil wird festgesetzt
        wirklich.setFont(Font.font("Tahoma", 12));

        // der Hbox werden die beiden Buttons und der Text hinzugefügt
        abbrechenbox.getChildren().addAll(wirklich, ja, nein);

        // die Scene wird in die Stage reingesetzt
        exitStage.setScene(anzahlscene);

        // die Stage wird angezeigt
        exitStage.show();
    }

    /**
     *
     */
    public void spielerErzeugen() {
        // die Stage wird erzeugt
        amountStage = new Stage();
        // der Stage wird einen Namen gegeben
        amountStage.setTitle("Spielernamen eingeben");
        //
        amountStage.initModality(Modality.WINDOW_MODAL);
        // eine Vbox wird erstellt
        VBox namebox = new VBox();
        // Abstände innerhalb der Vbox wird erstellt
        namebox.setSpacing(5);
        //
        namebox.setPadding(new Insets(40, 40, 40, 35));

        // der Bestätigen Button wird erstellt
        bestaetigen1 = new Button("Bestätigen");
        bestaetigen1.setId("agree");

        neuSchreiben = new Button("Korrigieren");
        neuSchreiben.setId("rewrite");
        bestaetigen1.setOnAction(this);
        neuSchreiben.setOnAction(this);

        // vier Textfelder werden erstellt, um die Spielernamen einzugeben
        txt1 = new TextField();
        txt2 = new TextField();
        txt3 = new TextField();
        txt4 = new TextField();

        // ein Label wird für Spieler 1 erzeugt
        Label name1 = new Label("Spieler 1");
        // das Label hat die Farbe rot
        name1.setTextFill(Color.RED);
        // 
        Image punktrot = new Image(getClass().getResourceAsStream("image/red.png"));
        name1.setGraphic(new ImageView(punktrot));

        // ein Label wird für Spieler 2 erzeugt
        Label name2 = new Label("Spieler 2");
        // das Label hat die Farbe blau
        name2.setTextFill(Color.BLUE);
        //
        Image punktblau = new Image(getClass().getResourceAsStream("image/blue.png"));
        name2.setGraphic(new ImageView(punktblau));
        // ein Label wird für Spieler 3 erzeugt
        Label name3 = new Label("Spieler 3");
        // das Label hat die Farbe gelb
        name3.setTextFill(Color.YELLOW);
        //
        Image punktgelb = new Image(getClass().getResourceAsStream("image/yellow.png"));
        name3.setGraphic(new ImageView(punktgelb));
        // das Label für Spieler 4 wird erzeugt
        Label name4 = new Label("Spieler 4");
        // das Label har die Farbe grün
        name4.setTextFill(Color.GREEN);
        //
        Image punktgrün = new Image(getClass().getResourceAsStream("image/green.png"));

        // 
        name4.setGraphic(new ImageView(punktgrün));
        namebox.getChildren().addAll(name1, txt1, name2, txt2, name3, txt3, name4, txt4, bestaetigen1, neuSchreiben);

        // Scene wird erstellt (+Breite, Größe, Farbe)
        Scene anzahlscene = new Scene(namebox, 290, 380, Color.LIGHTSALMON);
        // die Scene wird in die Stage gesetzt
        amountStage.setScene(anzahlscene);

        // die Stage wird angezeigt
        amountStage.show();
    }

    /**
     *
     */
    public void anleitungErzeugen() {

        Stage dialogStage = new Stage();
        dialogStage.setTitle("Dies sind die Regeln");
        dialogStage.initModality(Modality.WINDOW_MODAL);
        dialogStage.setScene(new Scene(VBoxBuilder.create().
                children(new Text("In diesem spannungsvollen Spiel geht es darum, seine eigenen vier Spielfiguren so schnell wie möglich"
                + "\nvon seinem eigenen Startfeld aus über eine Spielfeldstrecke ins Ziel zu würfeln."
                + "\nGleichzeitig versucht man, die Mitspieler zu ärgern und deren Spielsteine, so oft es geht, weg zu kicken,"
                + "\ndamit sie wieder von vorn anfangen müssen."
                + "\nDie weißen Spielfelder des Bretts stellen die Laufbahn dar, die alle Spielfiguren passieren"
                + "\nmüssen."
                + "\nWer mit einer Spielfigur die ganze Laufbahn einmal vollständig durchlaufen hat,"
                + "\nzieht mit ihr auf die Zielfelder seiner Farbe vor."
                + "\nFremde Zielfelder dürfen nicht betreten werden."
                + "\nDer Spieler der als erster alle seine Männchen nach Hause bringt, hat das Spiel"
                + "\ngewonnen."
                + "\nDie anderen spielen weiter um die nächsten Plätze.")).
                alignment(Pos.CENTER).padding(new Insets(5)).build()));

        dialogStage.show();
    }

    /**
     *
     */
    public void faqErzeugen() {
        Stage fragen = new Stage();
        fragen.setTitle("Die Häufigst gestellten Fragen");
        fragen.initModality(Modality.WINDOW_MODAL);
        fragen.setScene(new Scene(VBoxBuilder.create().
                children(new Text("Hier ist eine Ansammlung, der am häufigst gestellten Fragen:"
                + "\n1. Wie seit ihr dazu gekommen, dieses Spiel zu programmieren?"
                + "\nAntwort: Wir dachten uns, es wäre spannend mal etwas unkonventionelles zu programmieren. Mastermind oder Memory war uns zu öde"
                + "\n2. War es schwer?"
                + "\nAnwort: Klar. Am Anfang war es ein wenig knifflig, die GUI zu bauen, aber danach ging alles eigentlich. "
                + "\nDie Controll Klasse hat uns noch ein wenig Sorgen bereitet. Wir mussten oft die Sprechstunde besuchen, um weiterzukommen. "
                + "\nAber eigentlich ging es. Uns fehlten meist nur wenige Tips bis zur richtigen Lösung.")).
                alignment(Pos.CENTER).padding(new Insets(5)).build()));

        fragen.show();

    }

    /**
     *
     */
    public void entwicklerInfo() {

        Stage entwickler = new Stage();
        entwickler.setTitle("Informationen");
        entwickler.initModality(Modality.WINDOW_MODAL);
        entwickler.setScene(new Scene(VBoxBuilder.create().
                children(new Text(" Hier stehen einige Informationen zu den Entwicklern des Spiels Mensch Ärgere Dich Nicht ")).
                alignment(Pos.CENTER).padding(new Insets(5)).build()));

        entwickler.show();
    }

    /**
     *
     */
    public void projektInfo() {
       Stage projekt = new Stage();
       projekt.setTitle("Informationen");
       projekt.initModality(Modality.WINDOW_MODAL);
       VBox vProjekt =new VBox ();
       Scene scene2 = new Scene (vProjekt, 300, 275, Color.CORAL);
       projekt.setScene (scene2);
       projekt.show (scene2);
    }
        
        
        
    }
        

      

    /**
     *
     */
    public void prozessInfo() {

 
    Stage prozess = new Stage();
    prozess.setTitle("Informationen");
    prozess.initModality(Modality.WINDOW_MODAL);
    VBox vProzess = new VBox();
    Scene scene1 = new Scene (vProzess, 300, 275, Color.AQUAMARINE);
    prozess.setScene(scene1);
    prozess.show();
    }
     

    /**
     *
     */
    private void wuerfeln() {
        int zahl = new Random().nextInt(6) + 1;
        System.out.println("Gewürfelte Zahl:" + zahl);

        gui.setzeWuerfelBild(zahl);

        if (zahl < 6) {
            // Debug Ausgabe
            System.out.println(" Sie müssen noch einmal würfeln!");

        } else {
            // Debug Ausgabe
            System.out.println(" Sie dürfen sich eine Spielfigur auswählen! ");
            Stage runde = new Stage();
            runde.initModality(Modality.WINDOW_MODAL);
            runde.setScene(new Scene(VBoxBuilder.create().
                    children(new Text(" Du bist dran! ")).
                    alignment(Pos.CENTER).padding(new Insets(5)).build()));
            runde.show();



        }

    }

    public void spielerAnzahl() {
        Stage anzahlStage = new Stage();

        RadioButton radio1 = new RadioButton(" 1 Spieler");
        //Image play1 = new Image(getClass().getResourceAsStream("player1.png"));
        //radio1.setGraphic(new ImageView(play1));
        RadioButton radio2 = new RadioButton(" 2 Spieler");
        //Image play2 = new Image(getClass().getResourceAsStream("player2.png"));
        //radio1.setGraphic(new ImageView(play2));
        RadioButton radio3 = new RadioButton(" 3 Spieler");
        //Image play3 = new Image(getClass().getResourceAsStream("player3.png"));
        //radio1.setGraphic(new ImageView(play3)); 
        RadioButton radio4 = new RadioButton(" 4 Spieler");
        //Image play4 = new Image(getClass().getResourceAsStream("player4.png"));
        //radio1.setGraphic(new ImageView(play4));

        radio1.setSelected(true);

        Button bestaetigen2 = new Button(" Bestätigen ");


        VBox zahlBox = new VBox();
        zahlBox.getChildren().addAll(radio1, radio2, radio3, radio4, bestaetigen2);


        Scene anzahlScene = new Scene(zahlBox);

        anzahlStage.setScene(anzahlScene);
        anzahlStage.show();

    }

    private void getName() {
        String a = txt1.getText();
        System.out.println("Spielername 1 ist:" + a);
        String b = txt2.getText();
        System.out.println("Spielername 2 ist:" + b);
        String c = txt3.getText();
        System.out.println("Spielername 3 ist:" + c);
        String d = txt4.getText();
        System.out.println("Spielername 4 ist:" + d);

        gui.setName(a, b, c, d);
        amountStage.close();

    } // Ende von Methode getName()

    private void zugBeenden() {
    }
} // Ende der Klasse

Jetzt geht es aber trotzdem nicht auf und in den ganzen anderen Methoden etc werden Fehlermeldungen angezeigt. Was ist jetzt falsch?
 

Ähnliche Java Themen


Oben