2016-08-22 13 views
0

OSレベルのウィンドウではないカスタムダイアログをJavaFXで作成できますか? (これは、アプリケーションウィンドウを出ることができない、メインステージの他のすべての上に表示されるポップアップウィンドウです。)すなわち、Adobe/Apache Flexのスタイルダイアログ。JavaFXでのメインウィンドウ/ステージ内のカスタムダイアログ/ポップアップ

+1

ControlsFXがこの機能を使用していました([軽量のダイアログを参照](http://fxexperience.com/controlsfx/features/dialogs/))。しかし、最近のControlsFXのビルドでは、軽量のダイアログ機能が廃止されました(http://stackoverflow.com/questions/26341152/controlsfx-dialogs-deprecated-for-what)。代わりに、ControlsFXはJavaFXコアAPIに実装されたダイアログのみを使用します。これは自己完結型のステージです。 [ControlsFXの古いブランチソースコード](https://bitbucket.org/controlsfx/controlsfx/branches/)を見直して、元々の軽量ダイアログの実装をどのように達成したかを確認することもできます。 – jewelsea

+0

ControlsFX [軽量ダイアログソース実装](https://bitbucket.org/controlsfx/controlsfx/src/371bca0e905536ca6742d181fdade07258260659/controlsfx/src/main/java/org/controlsfx/dialog/LightweightDialog.java?at=8.0.6_20&fileviewer=file -view-default)(現在サポートされていません)。 – jewelsea

答えて

1

その実際には非常に簡単で、サードパーティのライブラリを使用する必要なし:

stackpane内とトップの上にルートコンテナがアンカーペイン、ダイアログボックスコントロール(コンテナ/コンテナ+コントロールを作成置く埋め込み)。私はここで何を意味するかを実証するために

は小さなFXMLファイルです:あなたは、それは性質、リスナーに可動することができます enter image description here

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.scene.control.*?> 
<?import java.lang.*?> 
<?import javafx.scene.layout.*?> 


<StackPane xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"> 
    <children> 
     <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: black;" /> 
     <AnchorPane prefHeight="200.0" prefWidth="363.0"> 
     <children> 
      <BorderPane layoutX="84.0" layoutY="123.0" prefHeight="99.0" prefWidth="227.0" style="-fx-background-color: red;"> 
       <center> 
        <Button mnemonicParsing="false" text="Button" BorderPane.alignment="CENTER" /> 
       </center> 
      </BorderPane> 
     </children> 
     </AnchorPane> 
    </children> 
</StackPane> 

ように見えます。それはいくつかの作業芽を行う必要があります。

jewelseaで述べたように、controlsfxには既に実装が必要なものがあります。正しく覚えていれば、ソースコードと動作中のすべてのものを見ることができるcontrolfxサンプルjarも提供しています。その時点からそれを実装するのは本当に些細なことです。新しいバージョンのJavaに更新されたときには、私は過去の制御で問題を抱えていました。

+0

実際に動かす必要はありません。ちょうどそのような静的なコンテナは、トリックを行う必要があります! – User

関連する問題