2009-03-06 8 views
1

私は現在、Swing(WPFのExpanderコントロールに類似)で拡張パネルを作成しようとしていますが、これを操作するための通常のメソッドを保持したいと思います。(setLayoutadd 、など)。埋め込みパネル(表示または非表示)にルーティングする必要があります。SwingでJPanelをサブクラス化する最良の方法

どうすればよいですか? JComponentのすべてのメソッドをオーバーライドし、それを組み込みのJPanelに再ルーティングするのは面倒ですが、それが私が見る唯一の方法です。

代わりに、埋め込みパネルを外部に見えるようにして、代わりにユーザーにExpanderPanel.getInnerPanel()のようなものを使用させる必要があります。しかし、それは私が持っているといいと思うJPanelのドロップイン置換ではありません。

答えて

1

In 1.5(ish)スイングでは、JFrame,JAppletなどのコンテンツペインにいくつかのメソッドがルーティングされました。開始したばかりのユーザにとってのメリットがあるようですが、実際には問題は解決しません。誰もが非常に不思議な振る舞いをするAPIに対処する必要があります。ですから私のアドバイスはこのアプローチを避けることです。

2

JXTaskPaneSwingxプロジェクトを参照してください。それはすでにあなたが必要とするものを行います。

+0

ここでの要件は、コードがJNIやライブラリの依存関係なしにプレーンJava上で実行されなければならないため、私は再考しなければならないということです。 – Joey

0

表示したり隠したりするパネルを保持しているコンテナウィジェットを使用している場合は、インナーパネルをレイアウトしてからコンテナパネルに追加し、コンテナに対して静的メソッドを使用してください。

JPanel p =新しいJPanel(); // JPanelで何かを行う。

ContainerWidget.setContent(p);

ContainerWidget.expandPanel(p、true);

この作品のようなものは何ですか?

関連する問題