2013-11-30 4 views
0

получил этоJavaFX HBox перемещать элементы

package net.makerimages.starling.src.window; 

import javafx.application.Platform; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.geometry.Insets; 
import javafx.geometry.Pos; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.Priority; 
import net.makerimages.starling.src.Main; 

/** 
* Created with IntelliJ IDEA. 
* User: Kodukas 
* Date: 29.11.13 
* Time: 23:53 
* To change this template use File | Settings | File Templates. 
*/ 
public class TopBar extends HBox 
{ 
public Button closeButton; 
public Button minMaxButton; 
public Label titleLabel; 

public TopBar() 
{ 
    titleLabel=new Label("Starling browser"); 
    closeButton=new Button("X"); 

    closeButton.setOnAction(new EventHandler<ActionEvent>() { 

     @Override 
     public void handle(ActionEvent actionEvent) { 
      Platform.exit(); 
     } 
    }); 
    closeButton.setStyle("-fx-opacity: 0.9;"); 

    minMaxButton=new Button("| |"); 
    minMaxButton.setOnAction(new EventHandler<ActionEvent>() { 

     @Override 
     public void handle(ActionEvent actionEvent) { 

      if(Main.stg.isFullScreen()==false) 
      { 
       Main.stg.setFullScreen(true); 
       minMaxButton.setText("||"); 
      } 
      else if(Main.stg.isFullScreen()==true) 
      { 
       Main.stg.setFullScreen(false); 
       minMaxButton.setText("| |"); 
       Main.browser.setMaxHeight(Main.browser.getHeight()-20); 
      } 
     } 
    }); 



    this.getChildren().addAll(closeButton,minMaxButton); 
    this.getChildren().add(titleLabel); 
    setMargin(titleLabel,new Insets(0,10,0,0)); 


} 
} 

То, что я хотел бы иметь это кнопка справа и метки в центре, однако ничего I`ve пытался для этого не работало. (Это используется в качестве панели инструментов в области borderPane) Ive пробовал буквально все, что я знаю

ответ

2

Использовать StackPane в качестве базового контейнера для вашей панели инструментов. Добавьте Label и HBox в StackPane. Ярлык будет автоматически выровнен по центру. Добавьте кнопки в HBox; на HBox установите для свойства выравнивания значение TOP_RIGHT. При необходимости установите прокладку, расстояние и т. Д.

Очень полезно использовать SceneBuilder для экспериментов с такими макетами.

0

Я бы предложил использовать GridPane и добавить элементы в строку и колонку, в которой они нуждаются.

Смежные вопросы