0

Java Swing で UI を実装しています。したがって、私はを使用しJTabbedPaneます。tabbedPane には、起動時にコンポーネントがありません。タブペインにタブを追加すると、タブペインの幅が増加し、タブを削除すると、幅が起動時の幅にサイズ変更されます。これは起こらないはずです。

タブペインはJPanel、グリッドバッグ レイアウトを持つ に配置されます。

レイアウト コード:

Container contentPane = mainFrame.getContentPane();
contentPane.setLayout( new GridBagLayout() );
GridBagConstraints c = new GridBagConstraints();        
// add the component tree
initComponentTree();
c.gridx = 0;
c.gridy = 0;
c.gridheight = 1;
c.gridwidth = 1;
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.LINE_START;
c.weightx = 1;
c.weighty = 1;
contentPane.add( componentTree, c );        
// add the tabbed pane
initTabbedPane();
c.gridx = 1;
c.weightx = 10;
contentPane.add( tabbedPane, c );       
// add the status panel
initStatusPanel();
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 2;
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.LINE_START;
c.weightx = 0;
c.weighty = 0;
contentPane.add( statusPanel, c );


誰かが助けてくれることを願っています!

4

3 に答える 3

2

ipadxの値をGridBagConstraints希望の幅に設定してみてください。

于 2012-09-11T11:48:23.023 に答える
0

GridBagLayout は絶対に避けるべきだというのが私の意見です。他のレイアウトでパネルをネストすることによって達成できないものは何も提供しません。それが提供する唯一のものは、多くの欲求不満です。

JTabbedPane を BorderLayout を使用してパネルに配置し、中央の位置に配置することをお勧めします。どうしても GridBayLayout を使用したい場合は、setMinimumSize() メソッドを使用してみてください。GridBagLayout は、そのメソッドを尊重するレイアウト マネージャーの 1 つです (BoxLayout はもう 1 つです)。

于 2012-09-11T15:36:36.947 に答える
-1

setSize()を試しましたか?

JTabbedPane pane;
pane.setSize(SOME_WIDTH_CONSTANT, SOME_HEIGHT_CONSTANT);
于 2012-09-11T11:11:35.720 に答える