Swing/LayeredPane の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/LayeredPane へ行く。
- Swing/LayeredPane の差分を削除
--- category: swing folder: LayeredPane title: JInternalFrameを一番手前に表示 tags: [JLayeredPane, JInternalFrame, JDesktopPane] author: aterai pubdate: 2004-06-21T07:16:58+09:00 description: JLayeredPaneを使って、常に一番手前に表示されるJInternalFrameを作成します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTO8wLpaZI/AAAAAAAAAdM/mML3cGeQwrg/s800/LayeredPane.png --- * 概要 [#summary] `JLayeredPane`を使って、常に一番手前に表示される`JInternalFrame`を作成します。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTO8wLpaZI/AAAAAAAAAdM/mML3cGeQwrg/s800/LayeredPane.png) * サンプルコード [#sourcecode] #code(link){{ JInternalFrame iframe = new JInternalFrame( "AlwaysOnTop", // title true, // resizable false, // closable true, // maximizable true); // iconifiable iframe.setSize(180, 180); desktop.add(iframe, Integer.valueOf(JLayeredPane.MODAL_LAYER + 1)); iframe.setVisible(true); }} * 解説 [#explanation] `JDesktopPane`は`JLayeredPane`を継承しているため、`JInternalFrame`を追加するレイヤーを指定可能です。このサンプルでは、タイトルが`AlwaysOnTop`の`JInternalFrame`を`JLayeredPane.MODAL_LAYER`の一つ上に設定し、他の`JInternalFrame`(ここでは後から追加する`JInternalFrame`)より常に手前に表示されるように設定しています。 * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JLayeredPane.html JLayeredPane (Java Platform SE 8)] - [http://d.hatena.ne.jp/tori31001/20060901 JInternalFrameは最初にアイコン化しておかないと位置が更新されない] -- [https://bugs.openjdk.java.net/browse/JDK-4110799 JDK-4110799 JInternalFrame icon position unchanged w/ resize - Java Bug System] -- [https://bugs.openjdk.org/browse/JDK-4110799 JDK-4110799 JInternalFrame icon position unchanged w/ resize - Java Bug System] * コメント [#comment] #comment - `JDK 1.5.0`で`JFrame`などは、`frame.setAlwaysOnTop(true)`が使えるようになっています。 -- &user(aterai); &new{2004-10-08 (金) 17:00:59}; - ありがとうございます。現在`GUI`の作成をしていて、目下この情報を探していました。ありがとうございました -- &user(G); &new{2004-12-24 (金) 12:00:00}; -- どういたしまして。 -- [[aterai]] #comment