TilePane setVgap(0)不起作用

时间:2014-10-17 14:11:22

标签: java javafx

所以我的问题很简单 - 我创造了一个矩形,我想彼此非常接近(实际上并非如此,但上限可能是2px)。问题是,setVGap函数无效。

TilePane rectPane = new TilePane(Orientation.HORIZONTAL);
        rectPane.setVgap(0.1);
        for (int i = 0; i < joonistabGraafiku(esimene).size()i++){; //joonistabgraafiku is method that draws rectangles
            rectPane.getChildren().add((Node) joonistabGraafiku(esimene).get(i));
        }

这个tilePane位于VBox中,它位于BorderPane上,名为root。

Result 我想要完成的是让黑色矩形彼此更接近......

整个代码(对不起爱沙尼亚语,在学校必修)..:

package application;

public class Main extends Application {
@Override
public void start(Stage primaryStage) {
    try {
        /*
         * TODO::
         * Kuvab info kui pole ühtegi valitud, aga vajutatakse ikkagi käima..
         */

        //luuakse stseen ja paan alumisele osale.
        BorderPane root = new BorderPane();
        Scene main_menu = new Scene(root,800,600);

        //Eelnevalt defineeritud muutujad, mis on võimalik valida testimiseks
        String predef1 = "0,5;6,9;6,5;15,10";
        String predef2 = "0,2;0,4;15,5;21,10";
        String predef3 = "5,6;6,9;11,3;12,7";


        //Switchbuttonite defineerimine
        final SwitchButton sb1 = new SwitchButton(predef1);
        final SwitchButton sb2 = new SwitchButton(predef2);
        final SwitchButton sb3 = new SwitchButton(predef3);

        //Selleks, et buttonitel shadow oleks kui hiirega üle minne.
        shadowChange(sb1);
        shadowChange(sb2);
        shadowChange(sb3);

        //Kasutaja võimalus lisada asju
        final TextField kasutajaValitud = new TextField();
        kasutajaValitud.setMaxWidth(160);
        kasutajaValitud.setPromptText("Sisesta kujul x,x;y,y;z,z");
        kasutajaValitud.setStyle("-fx-border-color:black;");
        String kasutajaSisestatud = kasutajaValitud.getText();

        //Kastile vajutamisel muutuvad sb ebaaktiivseks
        kasutajaValitud.setOnMouseClicked(new EventHandler<MouseEvent>() {
            public void handle(final MouseEvent event) {
                sb1.switchOnProperty().set(false);
                sb2.switchOnProperty().set(false);
                sb3.switchOnProperty().set(false);
            }
        });

        //Vbox switchbuttonitele
        final VBox nupud = new VBox();
        nupud.setSpacing(20);
        nupud.getChildren().addAll(sb1,sb2,sb3,kasutajaValitud);

        //Selleks, et buttonid üksteist välja lülitaksid
        turnOFF(sb1,sb2,sb3,kasutajaValitud);
        turnOFF(sb2,sb1,sb3,kasutajaValitud);
        turnOFF(sb3,sb1,sb2,kasutajaValitud);


        //Buttonite defineerimine:
        Button btn1 = new Button("FCFS");
        Button btn2 = new Button("SJF");
        Button btn3 = new Button("RR");
        Button btn4 = new Button("MM");

        //Buttonite shadow ja värv
        shadowChangeBtn(btn1);
        shadowChangeBtn(btn2);
        shadowChangeBtn(btn3);
        shadowChangeBtn(btn4);

        //Vbox buttonitele
        VBox nupuboks = new VBox();
        nupuboks.setSpacing(20);
        nupuboks.getChildren().addAll(btn1,btn2,btn3,btn4);

        //üksteise kõrvale VBoxid
        TilePane nupupaneel = new TilePane(Orientation.HORIZONTAL);
        nupupaneel.setPadding(new Insets(0, 0, 0, 0));
        nupupaneel.setHgap(35.0);
        nupupaneel.setVgap(8.0);
        nupupaneel.setAlignment(Pos.CENTER);
        nupupaneel.getChildren().addAll(nupud,nupuboks);

        FCFS esimene = new FCFS(predef1);
        //Üksteise kõrvale rectangled
        TilePane rectPane = new TilePane(Orientation.HORIZONTAL);
        //rectPane.setPadding(new Insets(0,0,0,0));
        rectPane.setVgap(0.1);
        for (int i = 0; i < joonistabGraafiku(esimene).size(); i++){
            rectPane.getChildren().add((Node) joonistabGraafiku(esimene).get(i));
        }


        //Vbox, et sättida asju üksteise alla.
        VBox kogumaailm = new VBox();
        kogumaailm.setSpacing(20);
        kogumaailm.getChildren().addAll(nupupaneel,rectPane);


        //Lisamine rootile
        root.setCenter(kogumaailm);

        main_menu.getStylesheets().add(
                getClass().getClassLoader().getResource("test.css")
                        .toExternalForm());
        primaryStage.setScene(main_menu);
        primaryStage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    launch(args);
}

//Muudab switchbuttonit selliseks, et ta vari muutuks
public SwitchButton shadowChange(final SwitchButton btn){
    final DropShadow shadow = new DropShadow();
    btn.addEventHandler(MouseEvent.MOUSE_ENTERED,
            new EventHandler<MouseEvent>() {
              @Override
              public void handle(MouseEvent e) {
                btn.setEffect(shadow);
              }
            });

        btn.addEventHandler(MouseEvent.MOUSE_EXITED,
            new EventHandler<MouseEvent>() {
              @Override
              public void handle(MouseEvent e) {
                btn.setEffect(null);
              }
            });

    return btn;
}

//Muudab buttonit, et selle vari muutuks
public Button shadowChangeBtn(final Button btn){
    final DropShadow shadow = new DropShadow();
    btn.setId("btn5");
    btn.setMaxWidth(100);
    btn.addEventHandler(MouseEvent.MOUSE_ENTERED,
            new EventHandler<MouseEvent>() {
              @Override
              public void handle(MouseEvent e) {
                btn.setEffect(shadow);
              }
            });

        btn.addEventHandler(MouseEvent.MOUSE_EXITED,
            new EventHandler<MouseEvent>() {
              @Override
              public void handle(MouseEvent e) {
                btn.setEffect(null);
              }
            });

    return btn;
}

//See muudab buttoni stiili välja lülitamisel
public SwitchButton styleChange(SwitchButton btn){
    //btn.setText("VÄLJAS");
    //btn.setStyle("-fx-background-color: orange;-fx-text-fill:black;");
    //btn.setContentDisplay(ContentDisplay.LEFT);
    btn.switchOnProperty().setValue(false);
    return btn;
}

//See lülitab buttoneid välja
public SwitchButton turnOFF(final SwitchButton btn,final SwitchButton btn_off, final SwitchButton btn_off2, final TextField tf1){
    btn.switchOnProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> ov,
                Boolean t, Boolean t1) {

            tf1.setText(null);
            if (t1) {
                styleChange(btn_off);
                styleChange(btn_off2);
                btn.switchOnProperty().setValue(true);
            } 
            else{
                btn.switchOnProperty().setValue(false);
            }
        }
    });
    return btn;
}

//Muudab predef stringid & saadud info kasutajalt listiks kust on hea andmeid võtta.
public String[] muudaListiks(String tekst){
    String lst1[] = tekst.split("[,\\;]");
    return lst1;
}

//Joonistab graafiku
public ArrayList joonistabGraafiku(FCFS fcfs1){
    double protsendivahe = 0;
    double loodavsuurus = 0;
    ArrayList aegadeList = new ArrayList();
    ArrayList tooaegadeList = new ArrayList();
    ArrayList rectlist = new ArrayList();
    aegadeList = fcfs1.tagastaLoppAeg();
    tooaegadeList = fcfs1.tagastatooAjad();
    double suurimelement = (int) aegadeList.get(aegadeList.size()-1); //suurim element = 100%.
    //algoritm suuruste leidmiseks:
    for (int i = 0; i<tooaegadeList.size();i++){
        double element = (int) tooaegadeList.get(i);
        protsendivahe = element/suurimelement;
        loodavsuurus = 500*protsendivahe;
        rectlist.add(new Rectangle(0,0,loodavsuurus,50));
    }
    return rectlist;
}

}

0 个答案:

没有答案