JPanelに追加したコンポーネントの順序を変更する
Total: 5524, Today: 1, Yesterday: 3
Posted by aterai at
Last-modified:
Summary
JPanel内のコンポーネントのZ軸順インデックスを変更してその表示順序を変更します。
Screenshot

Advertisement
Source Code Examples
button.addActionListener(e -> {
p.setComponentZOrder(p.getComponent(p.getComponentCount() - 1), 0);
p.revalidate();
});
View in GitHub: Java, KotlinDescription
GridLayoutを設定したJPanelに配置したZ軸順インデックスを変更GridLayoutはJPanelのComponentOrientationがLEFT_TO_RIGHTの場合Z軸順インデックスで左から右にコンポーネントを配置するFlowLayout、BoxLayoutなども同様
GridBagLayoutを設定したJPanelに配置したZ軸順インデックスを変更GridBagConstraints.gridxやGridBagConstraints.gridyのような位置に関する制約が指定されていない(制約がデフォルトのGridBagConstraints.RELATIVEの状態)場合、GridBagLayoutはZ軸順インデックスで左から右にコンポーネントを配置する- 例えば
c.gridx = 0;などの制約が設定されている場合setComponentZOrder(...)メソッドでZ軸順インデックスを変更しても表示位置は変化しない BorderLayoutのようにBorderLayout.NORTHなどのレイアウト制約を設定してコンポーネントを配置している場合も同様にZ軸順インデックスを変更しても表示位置は変化しない
- 例えば