2011年06月22日

(Java)メニューを動的に無効にする

なんだあ!どなたかハッキリ書いておいて欲しかった……(涙)
などと甘えたことを言ってますが、JavaのSwingでJmenuItemを特定の条件で無効にしたかったのですが、どうやればいいのか分からずに一日つぶしてしまいました。

最初は

JMenuBar mb = new JMenubar();
JMenu mn[] = new JMenu[3];;
JMenuItem mi[] = new JMenuItem[10];
mn[0] = new JMenuItem("Menu0");
mi[0] = new JMenuItem("MenuItem0");
mi[0].setActionCommand("MenuItem0");
if(level == 0){
mi[0].setEnable(false);
}else{
mi[0].setEnable(true);
}
mn[0].add(mi[0]);
....

などとやっていたのです。
もちろん上記ではうまくいかず、いったんfalseになったらlevel != 0の時も無効になったまま。
いろいろと呼び出す位置を変えたりとかしてみたのですが、さっぱりうまくいきませんでした。
情報もなかなか見つからなかったのですが、ようやく<a href="http://sengoku.ath.cx/java/contents/contents4/contents4_4.jsp" target="_blank">こちら</a>のサイトを発見!
正しい書き方はfalseにしたい時

mb.getMenu(0),getItem(0).setEnable(false);

とするのが正解だったのですね。
これで状況に応じてメニューの有効/無効を切り替えられるようになりました。
やれやれ、ホントに言語の仕組みを理解せずにアプリを作っているヤツって、ほとんど犯罪かも知れません>自分(笑…ごとじゃない?)
でも、これでまたひとつ勉強になりました。

【Javaの最新記事】
posted by 白虹 at 23:48| Comment(0) | TrackBack(1) | Java
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/46207744

この記事へのトラックバック

メニューを動的にカスタマイズする
Excerpt: オプションメニューを状況に合わせて変化させたいと思います まずはxmlでオプションメニューを2つ追加します xmlリソースファイルでメニューを作成する 今回はitem1とitem2を設置しました xm..
Weblog: 初心者の初心者のためのAndroidアプリ開発!
Tracked: 2012-03-08 13:47