元の外観の閉じるボタンだけを使用してJavaFXでウィンドウを作成するにはどうすればよいですか?

マイケル・ウー

StageStyle.DECORATED最小化または最大化ボタンがなく、閉じるボタンの元の外観でステージを作成する方法を見つけようとしていました私は試してみましたStageStyle.UTILITYが、それはかなり奇妙に見えます。

このようなウィンドウが欲しいのですが:(これはintelliJのウィンドウです)IntelliJURLウィンドウを開く

誰かがこれについていくつかの考えを持っていますか?ありがとう!

JKostikiadis

ステージまたはダイアログのデフォルトのStageStyleは次StageStyle.DECORATEDとおりです。StageStyleドキュメント読むと、次のように表示されます。

  • 飾ら:定義し、白色固体の背景とプラットフォームの装飾と、通常のステージのスタイル。
  • UTILITY:ユーティリティウィンドウに使用される、背景が白一色でプラットフォームの装飾が最小限のステージスタイルを定義します。

したがって、上記の説明から、ステージにいくつかの違いが見られる理由は、「最小限のプラットフォーム装飾」です。もちろん、これは、ユーザーまたはクライアントが使用しているプラ​​ットフォームによっては、目立たない場合や、気付かない場合があります。私の知る限り、オペレーティングシステムは、アプリケーションのタイトルバーと境界線の表示方法を担当しているため、その装飾にアクセスしたり変更したりする方法はありません。それを達成できると私が知っている唯一の方法は、独自のカスタムステージを作成し、必要なCSSを適用することです。これを行うには、を設定StageStyle.UNDECORATEDし、タイトルバーを最初から作成する必要があります。

特定のケースでは、ステージを使用する必要はありませんが。最小化ボタンと最大化ボタンがないカスタムダイアログを使用してこれを実現できます(少なくともJava 8では、最新バージョンでも同じだと思います)。ここに例を示します。

import java.util.Optional;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class App extends Application {

    @Override
    public void start(Stage stage) throws Exception {

        String input = showInputDialog();
        System.out.println("User Input : " + input);
        Platform.exit();
    }

    private String showInputDialog() {
        // Create the custom dialog.
        Dialog<String> dialog = new Dialog<String>();
        dialog.setTitle("Open URL");

        // Remove the header
        dialog.setHeaderText(null);

        // If you want to add an icon to the Dialog
        // dialog.setGraphic(new
        // ImageView(this.getClass().getResource("logo.png").toExternalForm()));

        // Set the button types.
        ButtonType okButtonType = new ButtonType("OK", ButtonData.OK_DONE);
        dialog.getDialogPane().getButtonTypes().addAll(okButtonType, ButtonType.CANCEL);

        // Create a VBox to store your controls
        VBox mainPane = new VBox(5);

        Label promptLabel = new Label("Specify URL :");

        HBox urlPane = new HBox();
        urlPane.setPadding(new Insets(5));
        urlPane.setAlignment(Pos.CENTER);

        TextField urlField = new TextField();
        Button searchButton = new Button("Search");
        searchButton.setOnAction(e->{
            // open a FileChooser etc and do something
        });

        urlPane.getChildren().addAll(urlField, searchButton);
        mainPane.getChildren().addAll(promptLabel, urlField);

        HBox.setHgrow(urlField, Priority.ALWAYS);

        // Enable/Disable OK button depending on whether a urlField was filled.
        Node confirmationButton = dialog.getDialogPane().lookupButton(okButtonType);
        confirmationButton.disableProperty().bind(urlField.textProperty().isEmpty());

        // set the content of the Dialog
        dialog.getDialogPane().setContent(mainPane);

        // set dialog return value
        dialog.setResultConverter(dialogButton -> {
            if (dialogButton == okButtonType) {
                return urlField.getText();
            }
            return null;
        });

        Optional<String> result = dialog.showAndWait();

        if (result.isPresent()) {
            return result.get();
        } else {
            return null;
        }
    }

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

}

結果 :

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

新しいウィンドウを閉じるまで元のウィンドウを使用できないように、electron jsで新しいウィンドウを作成するにはどうすればよいですか?

分類Dev

react-modalでモーダルウィンドウの外側に閉じるボタンを配置するにはどうすればよいですか?

分類Dev

QMainWindow でカスタムの最小化/閉じるウィンドウ ボタンを使用するにはどうすればよいですか?

分類Dev

tkinterを使用して2番目のウィンドウに「戻るボタン」を作成するにはどうすればよいですか?

分類Dev

Pythonでwin32guiを使用してハンドル付きのウィンドウを閉じるにはどうすればよいですか

分類Dev

ウィンドウでデフォルトのテキストの外観/品質を復元するにはどうすればよいですか?

分類Dev

Googleマップの情報ウィンドウの閉じるボタンの位置を変更するにはどうすればよいですか?

分類Dev

ユーザーがモーダルウィンドウの外側をクリックしたときに、jqueryを使用してw3schoolsの例のモーダルウィンドウを閉じるにはどうすればよいですか?

分類Dev

メインウィンドウを閉じずにTkinterの単一のウィンドウを閉じるにはどうすればよいですか?

分類Dev

AppleScriptで特定のターミナルウィンドウをターゲットにして閉じるにはどうすればよいですか?

分類Dev

右側のウィンドウを閉じるボタンを配置するにはどうすればよいですか?

分類Dev

Java GUIのボタンをクリックしたときに、新しいウィンドウを開いて現在のウィンドウを閉じるにはどうすればよいですか?

分類Dev

Turtleを使用した後にウィンドウを閉じるにはどうすればよいですか?

分類Dev

GNOMEウィンドウの閉じるボタンを非表示/無効にするにはどうすればよいですか?

分類Dev

Tkinter-ボタンを作成して新しいウィンドウを作成し、メインウィンドウを閉じるにはどうすればよいですか?

分類Dev

JavaでSelenium WebDriverを使用して特定のウィンドウを閉じるにはどうすればよいですか?

分類Dev

コードを使用してTkinterのウィンドウを閉じるにはどうすればよいですか?

分類Dev

Python TkinterでTopLevelウィンドウのみを閉じるにはどうすればよいですか?

分類Dev

ウィンドウをクリックして閉じるにはどうすればよいですか?

分類Dev

vimの現在のタブでのみすべてのウィンドウを閉じるにはどうすればよいですか?

分類Dev

tkinterのgrid()メソッドを使用して新しいウィジェットにボタンを作成するにはどうすればよいですか?

分類Dev

JavaScriptを使用してこのダイアログウィンドウを閉じるにはどうすればよいですか?

分類Dev

ウィジェットのボタンをクリックしてオーバーレイを閉じるにはどうすればよいですか?

分類Dev

GLUIウィンドウのみを閉じるにはどうすればよいですか

分類Dev

JavaFXで子ウィンドウを閉じた後に親ウィンドウを更新するにはどうすればよいですか?

分類Dev

親ウィンドウが閉じているときに子ウィンドウを閉じるにはどうすればよいですか?(WPF)

分類Dev

クリックされたボタンイベントで他のタスクを実行しているときにメインウィンドウを閉じるにはどうすればよいですか?

分類Dev

ウィンドウの境界線だけを削除するにはどうすればよいですか?

分類Dev

スクリプトでrandom.choiceを使用して、Tkinterウィンドウを閉じずにボタンを押すたびに異なる結果が得られるようにするにはどうすればよいですか?

Related 関連記事

  1. 1

    新しいウィンドウを閉じるまで元のウィンドウを使用できないように、electron jsで新しいウィンドウを作成するにはどうすればよいですか?

  2. 2

    react-modalでモーダルウィンドウの外側に閉じるボタンを配置するにはどうすればよいですか?

  3. 3

    QMainWindow でカスタムの最小化/閉じるウィンドウ ボタンを使用するにはどうすればよいですか?

  4. 4

    tkinterを使用して2番目のウィンドウに「戻るボタン」を作成するにはどうすればよいですか?

  5. 5

    Pythonでwin32guiを使用してハンドル付きのウィンドウを閉じるにはどうすればよいですか

  6. 6

    ウィンドウでデフォルトのテキストの外観/品質を復元するにはどうすればよいですか?

  7. 7

    Googleマップの情報ウィンドウの閉じるボタンの位置を変更するにはどうすればよいですか?

  8. 8

    ユーザーがモーダルウィンドウの外側をクリックしたときに、jqueryを使用してw3schoolsの例のモーダルウィンドウを閉じるにはどうすればよいですか?

  9. 9

    メインウィンドウを閉じずにTkinterの単一のウィンドウを閉じるにはどうすればよいですか?

  10. 10

    AppleScriptで特定のターミナルウィンドウをターゲットにして閉じるにはどうすればよいですか?

  11. 11

    右側のウィンドウを閉じるボタンを配置するにはどうすればよいですか?

  12. 12

    Java GUIのボタンをクリックしたときに、新しいウィンドウを開いて現在のウィンドウを閉じるにはどうすればよいですか?

  13. 13

    Turtleを使用した後にウィンドウを閉じるにはどうすればよいですか?

  14. 14

    GNOMEウィンドウの閉じるボタンを非表示/無効にするにはどうすればよいですか?

  15. 15

    Tkinter-ボタンを作成して新しいウィンドウを作成し、メインウィンドウを閉じるにはどうすればよいですか?

  16. 16

    JavaでSelenium WebDriverを使用して特定のウィンドウを閉じるにはどうすればよいですか?

  17. 17

    コードを使用してTkinterのウィンドウを閉じるにはどうすればよいですか?

  18. 18

    Python TkinterでTopLevelウィンドウのみを閉じるにはどうすればよいですか?

  19. 19

    ウィンドウをクリックして閉じるにはどうすればよいですか?

  20. 20

    vimの現在のタブでのみすべてのウィンドウを閉じるにはどうすればよいですか?

  21. 21

    tkinterのgrid()メソッドを使用して新しいウィジェットにボタンを作成するにはどうすればよいですか?

  22. 22

    JavaScriptを使用してこのダイアログウィンドウを閉じるにはどうすればよいですか?

  23. 23

    ウィジェットのボタンをクリックしてオーバーレイを閉じるにはどうすればよいですか?

  24. 24

    GLUIウィンドウのみを閉じるにはどうすればよいですか

  25. 25

    JavaFXで子ウィンドウを閉じた後に親ウィンドウを更新するにはどうすればよいですか?

  26. 26

    親ウィンドウが閉じているときに子ウィンドウを閉じるにはどうすればよいですか?(WPF)

  27. 27

    クリックされたボタンイベントで他のタスクを実行しているときにメインウィンドウを閉じるにはどうすればよいですか?

  28. 28

    ウィンドウの境界線だけを削除するにはどうすればよいですか?

  29. 29

    スクリプトでrandom.choiceを使用して、Tkinterウィンドウを閉じずにボタンを押すたびに異なる結果が得られるようにするにはどうすればよいですか?

ホットタグ

アーカイブ