2011-07-26 12 views
0

以前のJavaFX 2.0バージョンのJavaFX 2.0 b36(SDK for Windows(32Bit)+ Netbeans Plugin)への更新以来、SplitPaneコントロールは期待どおりに動作しません。JavaFX 2.0 SplitPaneが予期したとおりに動作しなくなった

  1. ディバイダは
  2. を移動させることができない予想通りディバイダ位置は予想通り
  3. 含ま辺のサイズではないれていない

ここをSplitPaneのための私のサンプルコード。

public class FxTest extends Application { 

    public static void main(String[] args) { 
     Application.launch(FxTest.class, args); 
    } 

    @Override 
    public void start(Stage primaryStage) { 
     primaryStage.setTitle("SplitPane Test"); 

     Group root = new Group(); 
     Scene scene = new Scene(root, 200, 200, Color.WHITE); 

     Button button1 = new Button("Button 1"); 
     Button button2 = new Button("Button 2"); 

     SplitPane splitPane = new SplitPane(); 
     splitPane.setPrefSize(200, 200); 
     splitPane.setOrientation(Orientation.HORIZONTAL); 
     splitPane.setDividerPosition(0, 0.7); 
     splitPane.getItems().addAll(button1, button2); 

     root.getChildren().add(splitPane); 

     primaryStage.setScene(scene); 
     primaryStage.setVisible(true); 
    } 
} 

可能な限り、左側は明らかに右側よりも小さいことがわかります。あなたがVERTICAL

splitPane.setOrientation(Orientation.VERTICAL); 

に向きを変更して、「HERE」と言って、いくつかのコンソール出力を得る上または下に仕切りを移動しようとすると、

もう一つの面白い事実は、あります。 テスト出力のように見えます。

この問題は何ですか?

+0

同じことが私に起こっています。 – cybermotron

答えて

3

SplitPaneを期待どおりに動作させるには、各サイドにレイアウト(BorderPaneなど)を追加します。これらの各レイアウトに表示するコントロールを追加します。私はこれがAPIのドキュメントでより明確にされるべきだと思います!

public class FxTest extends Application { 

    public static void main(String[] args) { 
     Application.launch(FxTest.class, args); 
    } 

    @Override 
    public void start(Stage primaryStage) { 
     primaryStage.setTitle("SplitPane Test"); 

     Group root = new Group(); 
     Scene scene = new Scene(root, 200, 200, Color.WHITE); 

     //CREATE THE SPLITPANE 
     SplitPane splitPane = new SplitPane(); 
     splitPane.setPrefSize(200, 200); 
     splitPane.setOrientation(Orientation.HORIZONTAL); 
     splitPane.setDividerPosition(0, 0.7); 

     //ADD LAYOUTS AND ASSIGN CONTAINED CONTROLS 
     Button button1 = new Button("Button 1"); 
     Button button2 = new Button("Button 2"); 

     BorderPane leftPane = new BorderPane(); 
     leftPane.getChildren().add(button1); 

     BorderPane rightPane = new BorderPane(); 
     rightPane.getChildren().add(button2); 

     splitPane.getItems().addAll(leftPane, rightPane); 

     //ADD SPLITPANE TO ROOT 
     root.getChildren().add(splitPane); 

     primaryStage.setScene(scene); 
     primaryStage.setVisible(true); 
    } 
} 
関連する問題