-
Bug
-
Resolution: Fixed
-
P4
-
6
-
b16
-
generic
-
generic
FULL PRODUCT VERSION :
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode)
FULL OPERATING SYSTEM VERSION :
Microsoft Windows XP
A DESCRIPTION OF THE PROBLEM :
Run attached test and select any tab in the JTabbedPane
you'll get the following exception
java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTabbedPaneUI.scrollableTabLayoutEnabled(BasicTabbedPaneUI.java:246)
at javax.swing.plaf.basic.BasicTabbedPaneUI.access$400(BasicTabbedPaneUI.java:37)
at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.stateChanged(BasicTabbedPaneUI.java:3504)
at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:312)
at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:244)
at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:116)
at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:50)
EXPECTED VERSUS ACTUAL BEHAVIOR :
No exception is expected in this case
###@###.### 2005-06-16 09:03:33 GMT
See below for the test case. Access was requested by java.net users who are active on the dev forum.
% cat tabbedpanebug.java
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
/**
* @author ###@###.###
*/
public class TabbedPaneBug extends JFrame implements ChangeListener{
JTabbedPane tbp = new JTabbedPane();
public static void main(String[] args) {
new TabbedPaneBug();
}
public TabbedPaneBug(){
super("JTabbedPane Testing");
tbp.addTab("Tab 1 " , new JLabel("I am JLabel 1"));
tbp.addTab("Tab 2 " , new JLabel("I am JLabel 2" ));
tbp.addTab("Tab 3 " , new JLabel("I am JLabel 3 "));
tbp.addTab("Tab 4 " , new JLabel("I am JLabel 4"));
setLayout(new BorderLayout());
add(tbp,BorderLayout.CENTER);
tbp.addChangeListener(this);
setSize(600,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void stateChanged(ChangeEvent arg0) {
tbp.updateUI();
}
}
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode)
FULL OPERATING SYSTEM VERSION :
Microsoft Windows XP
A DESCRIPTION OF THE PROBLEM :
Run attached test and select any tab in the JTabbedPane
you'll get the following exception
java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTabbedPaneUI.scrollableTabLayoutEnabled(BasicTabbedPaneUI.java:246)
at javax.swing.plaf.basic.BasicTabbedPaneUI.access$400(BasicTabbedPaneUI.java:37)
at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.stateChanged(BasicTabbedPaneUI.java:3504)
at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:312)
at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:244)
at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:116)
at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:50)
EXPECTED VERSUS ACTUAL BEHAVIOR :
No exception is expected in this case
###@###.### 2005-06-16 09:03:33 GMT
See below for the test case. Access was requested by java.net users who are active on the dev forum.
% cat tabbedpanebug.java
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
/**
* @author ###@###.###
*/
public class TabbedPaneBug extends JFrame implements ChangeListener{
JTabbedPane tbp = new JTabbedPane();
public static void main(String[] args) {
new TabbedPaneBug();
}
public TabbedPaneBug(){
super("JTabbedPane Testing");
tbp.addTab("Tab 1 " , new JLabel("I am JLabel 1"));
tbp.addTab("Tab 2 " , new JLabel("I am JLabel 2" ));
tbp.addTab("Tab 3 " , new JLabel("I am JLabel 3 "));
tbp.addTab("Tab 4 " , new JLabel("I am JLabel 4"));
setLayout(new BorderLayout());
add(tbp,BorderLayout.CENTER);
tbp.addChangeListener(this);
setSize(600,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void stateChanged(ChangeEvent arg0) {
tbp.updateUI();
}
}