Java - AWT/Swing

JTabbedPane mit Buttons neben den Tabs

javax.swing.JTabbedPane



Das folgenden Codebeispiel demonstriert, wie man rechts neben den Tabs unter Verwendung einer GlassPane 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);
   }
}


Bei Problemen mit dem Cursor oder Rollover-Effekten gibt es hier eine Lösung.


Stichworte:

JTabbedPane, Buttons neben den Tabs, rechtsbündig, glasspane, glaspane

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007