質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

897閲覧

ノンアクティブなウィンドウアニメを作りたい

mojidenka

総合スコア4

JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/10/02 08:42

前提・実現したいこと

デスクトップ作業中に一定時間でポップするノンアクティブなアニメーションをJAVAで作成したいです。
(エクセル作業中などに、ふと妖精さんなどが現れて消える感じ)

発生している問題・エラーメッセージ

JFrameの背景とタイトルバーを透明にして、常に最前面に表示されるアニメーションは作れたのですが、
再生されるたびにフォーカスがアニメーションに移ってしまいます。
アニメーション再生時にフォーカスが移らない方法はないものでしょうか?

該当のソースコード

java

1public class Anime01 extends JFrame { 2 private Pane panel = null; 3 private Image img01 = this.getToolkit().getImage("img01.png"); 4 private Image img02 = this.getToolkit().getImage("img02.png"); 5 6 public Anime01() { 7 super(); 8 super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 9 setLocation(300,300); 10 setSize(1000,600); 11 setLocationRelativeTo(null); // 画面中央に表示 12 setAlwaysOnTop(true); // 常に最前面に表示 13 setUndecorated(true); // ツールバー非表示 14 setBackground(new Color(0,0,0,0)); // 透明 15 panel = new Pane(); 16 super.setContentPane(panel); 17 super.setVisible(false); 18 super.pack(); 19 } 20 public void run() { 21 try { 22 this.setVisible(true); 23 panel.run(img01); 24 Thread.sleep(500); 25 SwingUtilities.updateComponentTreeUI(this); 26 panel.run(img02); 27 }catch(Exception e) { 28 e.printStackTrace(); 29 } 30 } 31} 32public class Pane extends JPanel{ 33 private Image img; 34 35 public Pane() { 36 super(); 37 super.setPreferredSize(new Dimension(1000,600)); 38 super.setLayout(null); 39 repaint(); 40 } 41 public void run(Image img) { 42 this.img = img; 43 repaint(); 44 } 45 public void paint(Graphics g) { 46 g.drawImage(img, 0, 0, this); 47 } 48}

試したこと

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
super.setFocusable(false);
を追加すればOKでした。

投稿2019/10/09 01:09

mojidenka

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問