所以我的问题很简单 - 我创造了一个矩形,我想彼此非常接近(实际上并非如此,但上限可能是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。
我想要完成的是让黑色矩形彼此更接近......
整个代码(对不起爱沙尼亚语,在学校必修)..:
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;
}
}