Söker hjälp för JavaFX projekt

Permalänk

Söker hjälp för JavaFX projekt

Tjena! (javaFX)
Har ett projekt i skolan där jag skall skapa ett biobokningssystem och har kört fast. Iden är att jag har ett fält med knappar som representerar sitts bokningen. Jag kopplar boolean värden till säterna. Iden är att när ett säte är ledigt har den statusen true och flase när den är bokad. true skall ha grön färg på knapparna och false röd. Jag är nära slutet och skulle behöva hjälp den sissta biten.
MVH

package bio;

import javafx.application.Application;
import javafx.event.Event;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class biobokning extends Application
{

public static void main(String[] args)
{
launch(args);
}
public void start(Stage window)
{
boolean[][] theatre = new boolean[7][7];

for(int i=0; i<theatre.length; i++){
for(int j=0; j<theatre.length;j++){
theatre[i][j] = true;

BorderPane border = new BorderPane();
GridPane bokasäten = new GridPane();

bokasäten.setAlignment(Pos.CENTER_RIGHT);
bokasäten.setHgap(5);
bokasäten.setVgap(5);
bokasäten.setPadding(new Insets(20, 20, 20, 20));

Button menuBtn1 = new Button("Boka/Avboka");
Label lbl = new Label();

VBox menu = new VBox();
menu.getChildren().addAll(menuBtn1);

border.setLeft(menu);
border.setCenter(bokasäten);

menu.setSpacing(10);
menu.setPadding(new Insets(10,20,10,10));
menu.setAlignment(Pos.CENTER);

lbl.setText("Välkommen Till Douglas Bio");
border.setCenter(lbl);

menuBtn1.setOnAction(event ->
{
//border.set

for(int i=0; i<btn.length; i++){
for(int j=0; j<btn.length;j++){
Button säte = new Button();
säte.setOnAction(event ->
{
if (theatre[][])
säte[i][j] = false;

else if (theatre[][])
säte[i][j] = true;

}
});

btn[i][j] = new Button(""+i+","+""+j);
btn[i][j].setPrefSize(50, 50);
bokasäten.add(säte, i, j);

}
}

border.setCenter(bokasäten);
});

Scene scene = new Scene(border, 400, 300);
window.setScene(scene);
window.show();
}
}

Permalänk
Medlem

Använd [code][/code*](utan * på slut taggen, fan vad dålig sc inläggs editor blivit) taggar för att behålla formatering, ex:

mymonitor(Mod, Func) -> % should be done using spawn_link() Pid = whereis(apply(Mod,Func, [])), % Race condition process_flag(trap_exit, true), link(Pid), % to this receive {'EXIT', Pid, die} -> % For convenience die; {'EXIT', Pid, _Why} -> start() end.

Du har dessutom inte kopierat allt, du har vad jag gissar är lambda uttryck slut utan öppning samt saknar måsvingar.

Permalänk

Såå, är problemet att sätta själva färgen eller att få fram när en sådan förändring ska ske?
För det förstnämnda så får du nog sätta egen CSS, antingen direkt på elementet eller genom att ge den en stil klass. För det sistnämnda får du formatera om koden som ovannämnda beskriver.

Visa signatur

PHOBOS | R7 5700G | RX 7900 XT && ZELOS | Envy x360 | R7 4700U, båda med Fedora Silverblue.

Permalänk

@TheNorthernlight: vad innebär det att formatera om koden? kanske skulle ha förklarat det bättre, problemet är att jag inte har skrivit klart boolean koden och att jag inte börjat med färgfunktionerna. sen vill jag ju också att fältet skall visas upp på skärmen.

Permalänk
Medlem

Är det verkligen så bra att börja blanda in variabler med "bokasäten", ofta brukar det inte gillas.
Kanske java kan hantera dessa, är något rostig på det.
Ett sträng värde kan givetvis innehålla "ä,å,ö" osv, men i själva funktionera? :S

Permalänk
Inaktiv

@nikwad: I Java går det utmärkt att ha allt från åäö till 😍🕹 i sina variabler, funktioner och klassnamn. Personligen håller jag mig till a-Z

Permalänk
Medlem

Eftersom det är en skoluppgift måste du specificera mycket mer exakt vad du behöver hjälp med.
Det är inte meningen att någon här ska skriva koden åt dig.

utan rätt indentering är det väldigt jobbigt att läsa koden. Blanda inte svenska och engelska i koden.
Nu var det längesen jag jobbade med java men vad gör den här koden:

if (theatre[][]) säte[i][j] = false; else if (theatre[][]) säte[i][j] = true;

Permalänk
99:e percentilen
Skrivet av Doz3r:

Använd [code][/code*](utan * på slut taggen, fan vad dålig sc inläggs editor blivit) taggar för att behålla formatering, ex:

Använd [noparse]-taggen för att skriva ut BB-kod och [cmd] för att styla den. Exempel:

Använd [cmd][noparse][code][/code][/noparse][/cmd] för att behålla formatering

Använd Better SweClockers för att få en bra editor (bland annat).

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

@anon81912: Där ser man, verkligen glad att jag inte håller på med Java.
Får kallakårar bara att tänka på vad mycket fel det kan bli med ytterliggare tecken...

Permalänk

@dddooouglas: Menade att du ska skicka koden inom code taggar så att du kan formatera och behålla din indentering, för utan indenteringen är det väldigt svårt att strukturen på koden.

Visa signatur

PHOBOS | R7 5700G | RX 7900 XT && ZELOS | Envy x360 | R7 4700U, båda med Fedora Silverblue.

Permalänk

@Pake: jag skapade ett boolean fält och satte alla värden till true från början, denna delen e det tanken att den skall ha action handlers efteråt där om dom är true så ska färgen vara grön på knapparna och om den är false så röd.

Permalänk

@TheNorthernlight:

package bio; import javafx.application.Application; import javafx.event.Event; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.input.KeyCode; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class biobokning extends Application { public static void main(String[] args) { launch(args); } public void start(Stage window) { boolean[][] theatre = new boolean[7][7]; for(int i=0; i<theatre.length; i++){ for(int j=0; j<theatre.length;j++){ theatre[i][j] = true; BorderPane border = new BorderPane(); GridPane bokasäten = new GridPane(); bokasäten.setAlignment(Pos.CENTER_RIGHT); bokasäten.setHgap(5); bokasäten.setVgap(5); bokasäten.setPadding(new Insets(20, 20, 20, 20)); Button menuBtn1 = new Button("Boka/Avboka"); Label lbl = new Label(); VBox menu = new VBox(); menu.getChildren().addAll(menuBtn1); border.setLeft(menu); border.setCenter(bokasäten); menu.setSpacing(10); menu.setPadding(new Insets(10,20,10,10)); menu.setAlignment(Pos.CENTER); lbl.setText("Välkommen Till Douglas Bio"); border.setCenter(lbl); menuBtn1.setOnAction(event -> { //border.set for(int i=0; i<btn.length; i++){ for(int j=0; j<btn.length;j++){ Button säte = new Button(); säte.setOnAction(event -> { if (theatre[][]) säte[i][j] = false; else if (theatre[][]) säte[i][j] = true; } }); btn[i][j] = new Button(""+i+","+""+j); btn[i][j].setPrefSize(50, 50); bokasäten.add(säte, i, j); } } border.setCenter(bokasäten); }); Scene scene = new Scene(border, 400, 300); window.setScene(scene); window.show(); } }

Permalänk

Testa fråga på stackoverflow.com

Permalänk
Medlem

En tanke bara:
1. Skapa en 1-nivå array
2. Fyll array med knappar som har färgen "röd"
3. Skapa en action för knappen att ändra färgen till "grön"
Eller?

Typ såhär: https://repl.it/@johanbx/sweclockers-biograf