0

さて、JFrame にあるメイン パネルの BoxLayout を Y_AXIS に設定しました。実際のフレームを X_AXIS に設定された BoxLayout に設定してから、メイン パネルを JFrame に追加しようとしましたが、「BoxLayout を共有できません」という java.awt.AWTError が表示されます。これを可能にする BoxLayout を使用する他の方法はありますか?

ComponentPanel.setToolTipText("I go in the FramePanel as well as other of my types aligned up and down");

FramePanel.setLayout(new BoxLayout(FramePanel, BoxLayout.Y_AXIS));
FramePanel.add(ComponentPanel);

Frame.setLayout(new BoxLayout(Frame, BoxLayout.X_AXIS));
Frame.add(FramePanel);
4

3 に答える 3

2

JFrameのコンテンツ パネルをBoxLayoutのターゲット コンテナとして使用します。

frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.X_AXIS));

また、Java Naming Conventionsに従うようにしてください。変数名は小文字で始める必要があります。クラス名は大文字で始める必要があります。

于 2013-06-04T01:29:23.183 に答える
0

BoxLayout は「新しい BoxLayout」では「静的」です。Panel を拡張するクラスを使用し、Panel をパッケージ フォルダに配置して、パッケージ階層レベルを変更し、「静的フィールド値」クラス変数 Boxlayout を分離してみてください。

たとえば、クラス Mypanel は、パッケージとしてインポートする Panel{..... を拡張します。

個別のguipart.Mypanelをインポートします。

Panel insertboxlayoutpanel = (Panel)new Mypanel();

または完全に分類された JNDI 名を使用する

Panel insertboxlayoutpanel = (Panel)new separateguipart.Mypanel();

insertboxlayoutpanel.setLayout(新しい BoxLayout(FramePanel, BoxLayout.Y_AXIS));

于 2013-06-04T01:31:11.690 に答える
-2

コードに問題はありません。import.javax.swing というライブラリをインポートするだけです。; および import.awt. ;

于 2015-08-10T00:03:56.210 に答える