Dies ist eine alte Version des Dokuments!
JTabbedPane mit Buttons neben den Tabs
javax.swing.JTabbedPane
Das folgenden Codebeispiel demonstriert, wie man rechts neben den Tabs noch weitere Komponenten (hier Buttons) unterbringen kann:
import javax.swing.*; import java.awt.*; public class TabbedPaneDemo extends JFrame { public TabbedPaneDemo() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); initGUI(); } public void initGUI() { JTabbedPane tabbedPane = new JTabbedPane(); JPanel panel = new JPanel(new GridLayout(1, 2)); for (int i = 0; i < 3; i++) { JPanel tab = new JPanel(); tab.setName("Tab " + (i + 1)); tab.setPreferredSize(new Dimension(400, 300)); tabbedPane.add(tab); } for (int i = 1; i <= 2; i++) { JButton button = new JButton("B" + i); button.setMargin(new Insets(0, 0, 0, 0)); panel.add(button); } add(tabbedPane); pack(); Rectangle tabBounds = tabbedPane.getBoundsAt(0); Container glassPane = (Container) getGlassPane(); glassPane.setVisible(true); glassPane.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.weightx = 1.0; gbc.weighty = 1.0; gbc.insets = new Insets(2, 0, 2, 0); gbc.fill = GridBagConstraints.NONE; gbc.anchor = GridBagConstraints.NORTHEAST; panel.setPreferredSize(new Dimension(75, 18)); glassPane.add(panel, gbc); } public static void main(String[] args) { TabbedPaneDemo frame = new TabbedPaneDemo(); frame.setVisible(true); } }