OK私のニーズに合わせて、下のリンクから既存の回答を修正しようとしています。私の場合、JTabbedPane.TOPを設定する必要がありますが、ボタンは消えます。JTabbedPaneのタブの右側にコンポーネントを配置します。
私はあまりにもスイングに精通していないので、誰かが私に知らせてください。以下はリンクからの完全なコード例です。
How to place components beneath tabs in right oriented JTabbedPane
public class RightTabPaneButtonPanel {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new RightTabPaneButtonPanel().makeUI();
}
});
}
public void makeUI() {
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.setTabPlacement(JTabbedPane.TOP);
JPanel panel = new JPanel(new GridLayout(1, 0));
for (int i = 0; i < 3; i++) {
JPanel tab = new JPanel();
tab.setName("tab" + (i + 1));
tab.setPreferredSize(new Dimension(400, 400));
tabbedPane.add(tab);
JButton button = new JButton("B" + (i + 1));
button.setMargin(new Insets(0, 0, 0, 0));
panel.add(button);
}
JFrame frame = new JFrame();
frame.add(tabbedPane);
frame.pack();
Rectangle tabBounds = tabbedPane.getBoundsAt(0);
Container glassPane = (Container) frame.getGlassPane();
glassPane.setVisible(true);
glassPane.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.fill = GridBagConstraints.NONE;
int margin = tabbedPane.getWidth() - (tabBounds.x + tabBounds.width);
gbc.insets = new Insets(0, 0, 0, margin);
gbc.anchor = GridBagConstraints.SOUTHEAST;
panel.setPreferredSize(new Dimension((int) tabBounds.getWidth() - margin,
panel.getPreferredSize().height));
glassPane.add(panel, gbc);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
はあなたのそのDimensionオブジェクトをプリントアウトしてみ'panel.setPreferredSize'に渡してください。 – VGR
ボタンパネルはどこにありますか?北東? – ArcticLord
NORTHEASTです。ボタンをちょうど右揃えにしてください。 – Marquinio