ここから本文です

Javaで、常に手前に表示するアプリを作ることは可能でしょうか?

mai********さん

2016/10/801:12:24

Javaで、常に手前に表示するアプリを作ることは可能でしょうか?

Javaであるアプリを作ろうと思います。
ターゲットOSはWindows10(64bit)です。

アプリ自体はウィンドウ1枚の単純なものです。
(Ethernetでデータを受信して、そのデータを表示する。)

ただ、ひとつ条件があって、このアプリは常に手前に
表示させたいと思います。
例えば、Windowsであれば、WordとかExcelとかIEとかを
同時に動かすことができますが、
作成したアプリは、常にそれよりも前面に表示させたいです。
換言すれば、他のアプリの後ろには決して隠れなくしたい
と言うことです。

例えば、タスクマネージャはメニューのオプション内の
「常に手前に表示」にチェックを付けると、
他のウィンドウには隠れなくなりますが、
そのように振る舞うアプリを作りたいのです。

そういったことは可能なのでしょうか?

(少し調べたら、setAlwaysOnTopなるメソッドがあって、
それを使えば実現可能、と書かれているページがありました。
ただ、それが自前で作ったアプリ内での話なのか、
Windows上の全てのアプリを含めての最前面なのか
よく分かりません。)

あまりJavaのことは知らないため、くだらない質問かもしれませんが、
よろしくお願いいたします。

閲覧数:
292
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

wah********さん

2016/10/811:58:53

試しに作ってみました.ソースをコピペしてコンパイルし,実行してみてください.(但し,ラムダ式(lambda expression)を用いているため,Java7以前の環境では動作しません.)

>あまりJavaのことは知らないため、
とりあえず,入門書を買ってみてはいかがでしょうか.


以下ソースコードです .
====================
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.VBox;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class ChieBukuro extends Application{
final static String BR = System.getProperty("line.separator");

public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage stage){
/*[チェックボックス]常に最前面に表示の設定*/
CheckBox chb_isAlwaysOnTop = new CheckBox("常に最前面に表示");
chb_isAlwaysOnTop.setAlignment(Pos.CENTER);
chb_isAlwaysOnTop.setPadding(new Insets(15,15,15,15));
chb_isAlwaysOnTop.setOnAction(e -> {
stage.setAlwaysOnTop(chb_isAlwaysOnTop.isSelected());
System.out.printf("常に最前面に表示:%s%s",stage.isAlwaysOnTop()?"ON":"OFF",BR);
});

/*[Stage]ウィンドウの設定*/
stage.setTitle("ChieBukuro");
stage.setHeight(200);
stage.setMinHeight(200);
stage.setWidth(350);
stage.setMinWidth(350);
stage.setScene(new Scene(new VBox(chb_isAlwaysOnTop)));
stage.show();
}
}
====================

  • 質問者

    mai********さん

    2016/10/1011:51:12

    サンプルコードまで提示いただき、ありがとうございます。
    お手間をおかけして申し訳ございません。
    現在、試してみることができないのですが、
    確認可能な場所に戻ったら確認してみたいと思います。

    チェックボックスの状態と連動して、
    setAlwaysOnTopの状態も切り替わるわけですね。
    ラムダ式のところはイベントの定義ですかね。
    ひっかかったら、使わない方法を調べてみます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2016/10/14 06:59:13

皆様、回答ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

agr********さん

2016/10/803:44:30

> ただ、それが自前で作ったアプリ内での話なのか、
> Windows上の全てのアプリを含めての最前面なのか
> よく分かりません。

数行のコード書いて試せばすぐ分かることなのになぜわざわざ質問するの。
「Windows上の全てのアプリを含めての最前面」です。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる