在“ VlagView”类中为“ VakjeView”添加颜色有什么可能?

我正在尝试在netbeans中使用javaFX做一个滑动难题(https://www.youtube.com/watch?v=GqcVqzq6GJ0 6:05)。我不知道如何为它添加颜色。我想在类VlagView中添加颜色。以下是我的所有课程以及到目前为止我已经尝试过的内容。

主要

package vlag;

import vlag.VlagController;
import vlag.VlagModel;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import vlag.VlagView;

public class Main extends Application {

@Override
public void start(Stage stage) throws Exception 
{
    // model
    VlagModel model = new VlagModel();
    
    // FXML view
    FXMLLoader loader = new FXMLLoader(VlagView.class.getResource("FXMLVlagView.fxml"));
    Parent root = (Parent) loader.load();

    // hoofdvenster
    Scene scene = new Scene(root);
    stage.setScene(scene);
    stage.show();
    root.requestFocus();
    
    // VlagController
    VlagController controller = loader.getcontroller();
    
    // MVC aan elkaar linken
    controller.setModel(model);

}
    /**
 * @param args the command line arguments
 */
public static void main(String[] args) 
{
    launch(args);
}
}

控制器

package vlag;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;

/**
 *
 * @author Nathan Deveux
 */

public class VlagController {

private VlagModel model;
private VlagView view;

@FXML
private ResourceBundle resources;

@FXML
private URL location;

@FXML
private AnchorPane myPane;

@FXML
private Button button1;

@FXML
private Button button2;

@FXML
private Button button3;

@FXML
private Button button12;

@FXML
private Button button11;

@FXML
private Button button10;

@FXML
private Button button4;

@FXML
private Button button5;

@FXML
private Button button6;

@FXML
private Button button9;

@FXML
private Button button8;

@FXML
private Button button7;

@FXML
private Label l;



@FXML
void initialize() {
        button1.setOnaction(evt -> knop1());
        button2.setOnaction(evt -> knop2());
        button3.setOnaction(evt -> knop3());
        button4.setOnaction(evt -> knop4());
        button5.setOnaction(evt -> knop5());
        button6.setOnaction(evt -> knop6());
        button7.setOnaction(evt -> knop7());
        button8.setOnaction(evt -> knop8());
        button9.setOnaction(evt -> knop9());
        button10.setOnaction(evt -> knop10());
        button11.setOnaction(evt -> knop11());
        button12.setOnaction(evt -> knop12());
}


public void setModel(VlagModel vlag)
{
    model = vlag;
    view  = new VlagView(model);
    
    myPane.getchildren().add(view);
}

public void knop1(){
    model.schuif1();
    view.update();
}

public void knop2(){
    model.schuif2();
    view.update();
}

public void knop3(){
    model.schuif3();
    view.update();
}

public void knop4(){
    model.schuif4();
    view.update();
}

public void knop5(){
    model.schuif5();
    view.update();
}

public void knop6(){
    model.schuif6();
    view.update();
}

public void knop7(){
    model.schuif7();
    view.update();
}

public void knop8(){
    model.schuif8();
    view.update();
}

public void knop9(){
    model.schuif9();
    view.update();
}

public void knop10(){
    model.schuif10();
    view.update();
}

public void knop11(){
    model.schuif11();
    view.update();
}

public void knop12(){
    model.schuif12();
    view.update();
}
}

TileMODEL

package vlag;

import java.util.Random;

/**
 *
 * @author Nathan Deveux
 */
public class VakjeModel {
    
    private double zijde;
    
    private int x;
    
    private int y;

    
    public VakjeModel(int x,int y,double zijde)
    {
        this.x = x;
        this.y = y;
        this.zijde = zijde;
    }
    
    /**
     * @return the zijde
     */
    public double getZijde() {
        return zijde;
    }

    /**
     * @param zijde the zijde to set
     */
    public void setZijde(double zijde) {
        this.zijde = zijde;
    }

    /**
     * @return the x
     */
    public int getX() {
        return x;
    }

    /**
     * @return the y
     */
    public int getY() {
        return y;
    }
    
}

TileVIEW

package vlag;

import javafx.scene.layout.Region;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import java.util.Random; 
import java.util.Arrays;

/**
 *
 * @author Nathan Deveux
 */
public class VakjeView extends Region{
    private VakjeModel vakjeModel;
    
    public VakjeView(VakjeModel vakjeModel) {
        this.vakjeModel = vakjeModel;

        update();
    }
    
    public void update(){
        Rectangle vakje = new Rectangle(40,40);
        
        getchildren().addAll(vakje);
    }
}

flagMODEL

package vlag;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

/**
 *
 * @author Nathan Deveux
 */
public class VlagModel {
    
    private ArrayList<VakjeModel> vakjes;
    
    
    public ArrayList<VakjeModel> getVakjes(){
        vakjes = new ArrayList<>();
        vakjes.add(new VakjeModel(0,40));
        vakjes.add(new VakjeModel(0,1,2,40));
        vakjes.add(new VakjeModel(1,40));
        vakjes.add(new VakjeModel(2,40));
        Collections.shuffle(vakjes);
        return vakjes;
    }
    
    public void schuif6(){
        if(vakjes.get(8).getY() == 2 && vakjes.get(8).getX() == 2){
            int i = vakjes.get(8).getX();
            i = 1;
        }else if(vakjes.get(2).getY() == 2 && vakjes.get(2).getX() == 0){
            int j = vakjes.get(2).getX();
            j = 2;
        }else if(vakjes.get(5).getY() == 2 && vakjes.get(5).getX() == 1){
            int h = vakjes.get(5).getX();
            h = 0;
        }
    }
    
    public void schuif5(){
        if(vakjes.get(7).getY() == 1 && vakjes.get(7).getX() == 2){
            int i = vakjes.get(7).getX();
            i = 1;
        }else if(vakjes.get(1).getY() == 1 && vakjes.get(1).getX() == 0){
            int j = vakjes.get(1).getX();
            j = 2;
        }else if(vakjes.get(4).getY() == 1 && vakjes.get(4).getX() == 1){
            int h = vakjes.get(4).getX();
            h = 0;
        }
    }
    
    public void schuif4(){
        if(vakjes.get(6).getY() == 0 && vakjes.get(6).getX() == 2){
            int i = vakjes.get(6).getX();
            i = 1;
        }else if(vakjes.get(0).getY() == 0 && vakjes.get(0).getX() == 0){
            int j = vakjes.get(0).getX();
            j = 2;
        }else if(vakjes.get(3).getY() == 0 && vakjes.get(3).getX() == 1){
            int h = vakjes.get(3).getX();
            h = 0;
        }
    }
    
    public void schuif12(){
        if(vakjes.get(6).getY() == 0 && vakjes.get(6).getX() == 2){
            int i = vakjes.get(6).getX();
            i = 0;
        }else if(vakjes.get(0).getY() == 0 && vakjes.get(0).getX() == 0){
            int j = vakjes.get(0).getX();
            j = 1;
        }else if(vakjes.get(3).getY() == 0 && vakjes.get(3).getX() == 1){
            int h = vakjes.get(3).getX();
            h = 2;
        }
    }
    
    public void schuif11(){
        if(vakjes.get(7).getY() == 1 && vakjes.get(7).getX() == 2){
            int i = vakjes.get(7).getX();
            i = 0;
        }else if(vakjes.get(1).getY() == 1 && vakjes.get(1).getX() == 0){
            int j = vakjes.get(1).getX();
            j = 1;
        }else if(vakjes.get(4).getY() == 1 && vakjes.get(4).getX() == 1){
            int h = vakjes.get(4).getX();
            h = 2;
        }
    }
    
    public void schuif10(){
        if(vakjes.get(8).getY() == 2 && vakjes.get(8).getX() == 2){
            int i = vakjes.get(8).getX();
            i = 0;
        }else if(vakjes.get(2).getY() == 2 && vakjes.get(2).getX() == 0){
            int j = vakjes.get(2).getX();
            j = 1;
        }else if(vakjes.get(5).getY() == 2 && vakjes.get(5).getX() == 1){
            int h = vakjes.get(5).getX();
            h = 2;
        }
    }
    
    public void schuif1(){
        if(vakjes.get(2).getY() == 2 && vakjes.get(2).getX() == 0){
            int i = vakjes.get(2).getY();
            i = 0;
        }else if(vakjes.get(1).getY() == 1 && vakjes.get(1).getX() == 0){
            int j = vakjes.get(1).getY();
            j = 2;
        }else if(vakjes.get(0).getY() == 0 && vakjes.get(0).getX() == 0){
            int h = vakjes.get(0).getY();
            h = 1;
        }
    }
    
    public void schuif2(){
        if(vakjes.get(5).getY() == 2 && vakjes.get(5).getX() == 1){
            int i = vakjes.get(5).getY();
            i = 0;
        }else if(vakjes.get(4).getY() == 1 && vakjes.get(4).getX() == 1){
            int j = vakjes.get(4).getY();
            j = 2;
        }else if(vakjes.get(3).getY() == 0 && vakjes.get(3).getX() == 1){
            int h = vakjes.get(3).getY();
            h = 1;
        }
    }
    
    public void schuif3(){
        if(vakjes.get(8).getY() == 2 && vakjes.get(8).getX() == 2){
            int i = vakjes.get(8).getY();
            i = 0;
        }else if(vakjes.get(7).getY() == 1 && vakjes.get(7).getX() == 2){
            int j = vakjes.get(7).getY();
            j = 2;
        }else if(vakjes.get(6).getY() == 0 && vakjes.get(6).getX() == 2){
            int h = vakjes.get(6).getY();
            h = 1;
        }
    }
    
    public void schuif9(){
        if(vakjes.get(2).getY() == 2 && vakjes.get(2).getX() == 0){
            int i = vakjes.get(2).getY();
            i = 1;
        }else if(vakjes.get(1).getY() == 1 && vakjes.get(1).getX() == 0){
            int j = vakjes.get(1).getY();
            j = 0;
        }else if(vakjes.get(0).getY() == 0 && vakjes.get(0).getX() == 0){
            int h = vakjes.get(0).getY();
            h = 2;
        }
    }
    
    public void schuif8(){
        if(vakjes.get(5).getY() == 2 && vakjes.get(5).getX() == 1){
            int i = vakjes.get(5).getY();
            i = 1;
        }else if(vakjes.get(4).getY() == 1 && vakjes.get(4).getX() == 1){
            int j = vakjes.get(4).getY();
            j = 0;
        }else if(vakjes.get(3).getY() == 0 && vakjes.get(3).getX() == 1){
            int h = vakjes.get(3).getY();
            h = 2;
        }
    }
    
    public void schuif7(){
        if(vakjes.get(8).getY() == 2 && vakjes.get(8).getX() == 2){
            int i = vakjes.get(8).getY();
            i = 1;
        }else if(vakjes.get(7).getY() == 1 && vakjes.get(7).getX() == 2){
            int j = vakjes.get(7).getY();
            j = 0;
        }else if(vakjes.get(6).getY() == 0 && vakjes.get(6).getX() == 2){
            int h = vakjes.get(6).getY();
            h = 2;
        }
    }
}

flagVIEW

package vlag;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.ChoiceBox;
import javafx.scene.layout.Region;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;

/**
 *
 * @author Nathan Deveux
 */
public class VlagView extends Region{
    private VlagModel model;
    //public static final int SIZE = 40;
    
    
    public VlagView(VlagModel vlagModel) {
        model = vlagModel;
        update();
    }
    
    public void update() {
        getchildren().clear();
        ArrayList<VakjeModel> vakjes = model.getVakjes();
        int dx = 0;
        int dy = 0;
        for(VakjeModel v : vakjes){
            VakjeView vv = new VakjeView(v);
            vv.setTranslateX(dx*50);
            vv.setTranslateY(dy*50);
            dx++;
            if (dx > 2) {
                dx = 0;
                dy++;
            }
            getchildren().add(vv);        
        }
        }
        
        public int welkVakjeLigtOp(double x,double y) {
        int kolom = (int)(x / 50);
        int positieX = ((int)x) % 50;
        if (positieX > 40) return -1;
        
        int rij = (int)(y/50);
        int positieY = ((int)y) % 50;
        if (positieY > 40) return -1;
        
        int vakjenr = kolom + rij*3;
        
        if (vakjenr > 9) return -1;
        
        return vakjenr;
    }
}

我尝试过的事情

if(dx == 25 && dy == 25){
            vv.setfill(Color.RED);
        }else if(dx == 75 && dy == 25){
            vv.setfill(Color.YELLOW);
        }else if(dx == 125 && dy == 25){
            vv.setfill(Color.YELLOW);
        }else if(dx == 25 && dy == 75){
            vv.setfill(Color.BLACK);
        }else if(dx == 75 && dy == 75){
            vv.setfill(Color.YELLOW);
        }else if(dx == 125 && dy == 75){
            vv.setfill(Color.BLACK);
        }else if(dx == 25 && dy == 125){
            vv.setfill(Color.RED);
        }else if(dx == 75 && dy == 125){
            vv.setfill(Color.RED);
        }else if(dx == 125 && dy == 125){
            vv.setfill(Color.BLACK);



ObservableList<Color> colors = FXCollections.observableArrayList(Color.YELLOW,Color.YELLOW,Color.RED,Color.BLACK,Color.BLACK);
FXCollections.shuflle(colors);
ChoiceBox<Color> box = new ChoiceBox<>(colors);

https://ibb.co/LgYK95d(FXML)

iCMS 回答:在“ VlagView”类中为“ VakjeView”添加颜色有什么可能?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1779016.html

大家都在问