2017-07-20 8 views
1

このバグは長い間前に修正されていたはずだと思っていましたが、ComboBoxをウィンドウの下部に配置すると、私はそれがこれを行う理由は、その上に他のコントロールがあるためだと思うので、むしろ下に拡大するものに「衝突」するよりもむしろ。なぜコンボボックスは、以上に展開しないのですか? 私が知っているのは、その上にいくつかのパディングを追加すると、それは下向きではなく上向きに広がることです。 JavaFX - ComboboxがDownward Off Screenを展開する(Post 8u60)

例:

public class Main extends Application { 

    @Override 
    public void start(Stage primaryStage) throws Exception{ 
     ObservableList<String> choiceList = FXCollections.observableArrayList(); 
     choiceList.addAll("Choice1", "Choice2", "Choice3", "Choice4"); 
     ComboBox<String> choices = new ComboBox<>(choiceList); 
     choices.setMinWidth(100); 

     Button button1 = new Button("First Button"); 
     button1.setMinWidth(150); 
     Button button2 = new Button("Second Button"); 
     button2.setMinWidth(150); 

     VBox layout = new VBox(10); 
     layout.setPadding(new Insets(10, 10, 10, 10)); 
     layout.getChildren().addAll(button1, button2, choices); 

     Scene scene = new Scene(layout); 

     primaryStage.setScene(scene); 
     primaryStage.setTitle("Example"); 
     primaryStage.show(); 
    } 


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

Image of window displayed by the above code

誰もがこのための修正を得ましたか。

+0

リストがステージ_above_ポップアップする必要があり、これは、奇妙です。あなたは[MCVE]を投稿できますか? – Itai

答えて

0

注:アプリケーションのメインウィンドウを画面の下部に移動していて、コンボボックスがドロップダウンしていて、ポップアップの一部のコンテンツが表示されないようにする場合は、よくバグかもしれない。しかし、私が推測していることは、もしそれが問題であれば、それはシステム特有の問題であり、OS Xでこのような問題を再現することはできないということです。もしそうなら、Java 9の早期アクセスリリースを試して、複製する場合は、bug reportを提出することができます。


これはバグではありません。これは仕様です。

ComboBoxポップアップは内部でPopupControlとして実装されています。 PopupControlは新しいウィンドウで、親ウィンドウ(メインステージ)の範囲内に収まるように制限されていません。 JavaFXには、ContextMenusおよびComboBoxポップアップなどのポップアップが、所有するステージ領域ではなく、表示可能な画面領域内に表示されるようにするロジックがあります。

メインアプリケーションを画面の一番上に移動し、コンボボックスのポップアップを開くと、画面に表示する余地があるため、ポップアップがドロップされます。しかし、メインアプリケーションを画面の下に移動してコンボボックスのポップアップを開くと、表示される余地がないのでポップアップがドロップされます(私はそのコンセプトを説明する良い方法はわかりません;-)ポップアップがドロップダウンした場合。

サンプルをドロップします。 OS Xでサンプルコードを実行し、メインアプリケーションウィンドウを画面の下部に移動し、コンボボックスのポップアップを開くことによって作成されます。

enter image description here

関連する問題