Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4379600

JTabbedPane: ArrayIndexOutOfBoundesException when no tabs are added/selected

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 1.4.0
    • 1.4.0
    • client-libs
    • beta
    • sparc
    • generic
    • Verified

      When I tried adding a JTabbedPane component to a JFrame, got ArrayIndexOutOfBoundsException

      The code I used:
      import java.awt.*;
      import java.awt.event.*;
      import javax.swing.*;

      public class FrameDemo extends JFrame implements FocusListener {
          public FrameDemo() {
              setSize(300, 300);
              
              addWindowListener(new WindowAdapter() {
                  public void windowClosing(WindowEvent e) {
                      System.exit(0);
                  }
              });
              
              //adding JTabbedPane
              JTabbedPane tabPane = new JTabbedPane();
              tabPane.addFocusListener(this);
              
              getContentPane().add(tabPane, BorderLayout.CENTER);
          }
          public static void main(String s[]) {
            FrameDemo fd = new FrameDemo();
            
            fd.pack();
            fd.setVisible(true);
          }
          
          public void focusGained(FocusEvent e) {
            System.out.println(e.getComponent());
          }
          
          public void focusLost(FocusEvent e) {
            System.out.println(e.getComponent());
          }
      }

      Exception in the console:
      Exception occurred during event dispatching:
      java.lang.ArrayIndexOutOfBoundsException
              at javax.swing.plaf.basic.BasicTabbedPaneUI.getTabBounds(BasicTabbedPaneUI.java:1178)
              at javax.swing.plaf.metal.MetalTabbedPaneUI.paintContentBorderTopEdge(MetalTabbedPaneUI.java:768)
              at javax.swing.plaf.basic.BasicTabbedPaneUI.paintContentBorder(BasicTabbedPaneUI.java:980)
              at javax.swing.plaf.basic.BasicTabbedPaneUI.paint(BasicTabbedPaneUI.java:477)
              at javax.swing.plaf.metal.MetalTabbedPaneUI.paint(MetalTabbedPaneUI.java:667)
              at javax.swing.plaf.metal.MetalTabbedPaneUI.update(MetalTabbedPaneUI.java:562)
              at javax.swing.JComponent.paintComponent(JComponent.java:430)
              at javax.swing.JComponent.paint(JComponent.java:689)
              at javax.swing.JComponent.paintChildren(JComponent.java:536)
              at javax.swing.JComponent.paint(JComponent.java:698)
              at javax.swing.JComponent.paintChildren(JComponent.java:536)
              at javax.swing.JComponent.paint(JComponent.java:698)
              at javax.swing.JLayeredPane.paint(JLayeredPane.java:548)
              at javax.swing.JComponent.paintChildren(JComponent.java:536)
              at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4240)
              at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4186)
              at javax.swing.JComponent.paint(JComponent.java:679)
              at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:24)
              at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:63)
              at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:100)
              at java.awt.Container.paint(Container.java:1036)
              at javax.swing.JFrame.update(JFrame.java:339)
              at sun.awt.RepaintArea.paintRect(RepaintArea.java:331)
              at sun.awt.RepaintArea.paint(RepaintArea.java:321)
              at sun.awt.motif.MComponentPeer.handleEvent(MComponentPeer.java:309)
              at java.awt.Component.dispatchEventImpl(Component.java:2965)
              at java.awt.Container.dispatchEventImpl(Container.java:1309)
              at java.awt.Window.dispatchEventImpl(Window.java:1228)
              at java.awt.Component.dispatchEvent(Component.java:2764)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:423)
              at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:136)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:122)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:118)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)

            amfowler Anne Fowler (Inactive)
            sramansunw Sridhar Raman (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: