2011年8月9日火曜日

JComponentのvisibleChanged?

色々忙しくて全く更新できていません


本業の方では仕事が変更になり、C#からJavaへ使用言語が変わりました。だからというわけでは...あるんですが、備忘録的にメモを残します。

Swingのお仕事


今回のお仕事では、Swingをメインに据えて作業していくことになりました。
そこで戸惑ったのが、C#ではVisibleプロパティを使って、ボタンなど、画面のモノの表示を消したり出したりしていました。
そしたら、Control.VisibleChangedなんてイベントが走りましてね、これを捕まえることができたんですが...

JavaのSwingコンポーネントでは?どうすんの?

何はともあれソースっす


結論から言うと、java.awt.event.ComponentListenerを追加すりゃなんとかなりました。
例えばボタンを作りましてね、そのVisibleを監視するのは以下のように

private void initComponents() {
    JButton button = new JButton("ボタンでっせ");
    button.addComponentListener(new ComponentAdapter() {
        @Override
        public void componentShown(final ComponentEvent e) {
            buttonVisibleChange(true);
        }

        @Override
        public void componentHidden(final ComponentEvent e) {
            buttonVisibleChange(false);
        }
    });
    add(button);
}

private void buttonVisibleChange(boolean visible) {
    System.out.println(visible);
}

  • componentShown() が表示されるとき
  • componentHidden() が消えるとき

見たまんまですね(^ー^

とにかく、C#とはちょっと勝手が違って悪戦苦闘気味ですが、こんな備忘録が増えていくかもしれません。

0 件のコメント:

コメントを投稿