Swing/WindowAncestor のバックアップ(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/WindowAncestor へ行く。
- 1 (2005-09-02 (金) 21:28:35)
- 2 (2005-09-30 (金) 16:31:37)
- 3 (2006-02-27 (月) 16:37:17)
- 4 (2006-08-24 (木) 17:07:25)
- 5 (2006-08-25 (金) 12:46:43)
- 6 (2007-05-04 (金) 03:29:20)
- 7 (2007-12-11 (火) 14:11:52)
- 8 (2008-05-09 (金) 14:34:28)
- 9 (2011-03-20 (日) 16:58:24)
- 10 (2012-03-13 (火) 20:58:15)
- 11 (2013-03-30 (土) 21:01:15)
- 12 (2013-10-15 (火) 17:36:02)
- 13 (2015-02-09 (月) 17:22:52)
- 14 (2015-06-05 (金) 17:16:52)
- 15 (2015-12-22 (火) 15:31:00)
- 16 (2016-03-29 (火) 18:42:44)
- 17 (2016-08-18 (木) 12:44:25)
- 18 (2017-04-04 (火) 14:13:45)
- 19 (2017-04-07 (金) 13:51:51)
- 20 (2017-10-06 (金) 14:54:33)
- 21 (2019-04-10 (水) 13:45:03)
- 22 (2021-01-20 (水) 18:23:06)
- 23 (2023-08-25 (金) 13:56:29)
TITLE:WindowAncestor(親ウィンドウ)の取得
WindowAncestor(親ウィンドウ)の取得
編集者:Terai Atsuhiro
作成日:2005-05-09
更新日:2023-08-25 (金) 13:56:29
概要
SwingUtilities.getWindowAncestor()などで、親ウィンドウを取得します。
#screenshot
サンプルコード
JButton button = new JButton(new AbstractAction("フレームのタイトルを表示") { public void actionPerformed(ActionEvent ae) { final JButton btn = (JButton)ae.getSource(); final JFrame frame = (JFrame)SwingUtilities.getWindowAncestor(btn); //final JFrame frame = (JFrame)JOptionPane.getFrameForComponent(btn); SwingUtilities.invokeLater(new Runnable() { public void run() { JOptionPane.showMessageDialog(frame, "親フレームのタイトル: "+frame.getTitle(), "タイトル", JOptionPane.INFORMATION_MESSAGE); } }); } });
- &jnlp;
- &jar;
- &zip;
解説
自分(コンポーネント)の最初の上位ウィンドウ(親ウィンドウ)を取得します。
SwingUtilities.getWindowAncestor、SwingUtilities.getRootメソッドを使うとjava.awt.Windowが、JOptionPane.getFrameForComponentメソッドを使うとjava.awt.Frameが返されます。
コメント
- JComponent#getTopLevelAncestor()でもほぼ同じ内容が取得できるような感じですね(自分自身からスタートするか、親からスタートするかの違いはあるようですが)。ただ、この場合、Windowの他にAppletが戻される場合もあるようですが。 -- syo?