- - PR -
menuBarのフロント表示について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-04 22:15
はじめまして、Javaアプリケーションに関して質問です。
ちなみにGUIアプリの開発は初めてです。 JFrameにパネルを2枚(left,right)貼り付けた GUI画面を製作しているのですが、menuBar表示が 貼り付けたパネルに邪魔されてしまい、見えません。 なにかしらよい解決方法はありませんでしょうか? private void init() { /* window左側パネルの設定*/ leftPanel = new LeftPanel(this); /* window右側パネルの設定*/ RightPanel right = new RightPanel(this); /** menuBarの設定 */ JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu("file"); JMenuItem open = new JMenuItem("open"); JMenuItem save = new JMenuItem("save"); JMenuItem exit = new JMenuItem("exit"); file.add(open); file.add(save); file.add(exit); menuBar.add(file); setJMenuBar(menuBar); /** window全体の設定 */ Container c = getContentPane(); c.add(leftPanel, BorderLayout.WEST); c.add(stage, BorderLayout.CENTER); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocation(100,100); setSize(800,600); setTitle("Edit Window"); (略) } |
|
投稿日時: 2005-07-04 22:41
begcomさんこんにちは。
質問の文と、コードに若干の隔たりがあると思うのですが、 それはともかくとして、 もしかして、左右に貼りつけたパネルが重量コンポーネント ということはありませんか? たとえば、java.awt.Canvasとか、java.awt.Panelとか またはそれらのサブクラスは重量コンポーネントです。 |
|
投稿日時: 2005-07-05 00:36
Kissingerさんはじめまして、
すばやい返信ありがとうございます。 ご指摘の通りソースは間違っておりました。 正しくは↓でしたね。 c.add(leftPanel, BorderLayout.WEST); c.add(right, BorderLayout.CENTER); また、leftPanel,rightは共にPanelをextendしています。 おっしゃるとおり重量コンポーネントのようです。 ただ、なぜ重量コンポーネントではダメなのか、 どうあるべきなのか(変更すればよいのか)、に関する知識がありません。 大変お手数ですが、 解決策のヒントなどいただけましたら光栄です。 よろしくお願いいたします。 |
|
投稿日時: 2005-07-05 00:44
Kissingerさん
先ほど以下のサイトから情報を得た結果、違いが分かりました。 http://wisdom.sakura.ne.jp/system/java/awt/Gjava54.html ::私の理解:: 重量コンポーネントは背景を持つために menubarの表示を隠していた。 ひとまず、leftPanel,rightをextends Containerへと変更することにより 無事解決することができました。 Kissingerさん、本当にありがとうございました! もし私の理解で不十分&おかしなところがあれば 更に指摘していただけるとありがたいです。 |
1