-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
1.2.2
-
x86
-
windows_nt
Name: vi73552 Date: 06/08/99
run the following little programm.
one time with the line getPrefferedSize
and one time with the line setDebugGraphicsOption.
Both lines result in a NullPointerException!
public class Frame1 extends JFrame
{
javax.swing.JTextPane textPane = new javax.swing.JTextPane();
public Frame1()
{
try
{
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
jbInit();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
Frame1 frame11 = new Frame1();
frame11.setSize(300,300);
frame11.setVisible(true);
}
private void jbInit() throws Exception
textPane.setText("32\np 2\np 3\nh g h jsdfhks");
// textPane.setDebugGraphicsOptions(DebugGraphics.FLASH_OPTION);
Dimension dim = textPane.getPreferredSize();
this.getContentPane().add(textPane, BorderLayout.NORTH);
}
}
---------------------------------------------------------------
trace with line Dimension dim = textPane.getPreferredSize();
C:\jdk1.2.1\bin\javaw.exe -classpath "P:\CD;C:\JBuilder2\lib\jgl3.1.0.jar;C:\JBuilder2\lib\vbjorb.jar;C:\JBuilder2\lib\vbjapp.jar;C:\JBuilder2\lib\vbjgk.jar;C:\JBuilder2\lib\jbclx.jar;C:\JBuilder2\lib\jbcl2.0.jar;C:\JBuilder2\lib\jbcl2.0-res.jar;C:\JBuilder2\dependency\~JBCLX;C:\jdk1.2.1\jre\lib\rt.jar;C:\jdk1.2.1\jre\lib\i18n.jar;C:\jdk1.2.1\lib\dt.jar;C:\JBuilder2\dependency\~javaversion1.2.1" test.Frame1
java.lang.NullPointerException
at javax.swing.text.LabelView.syncFragments(LabelView.java:110)
at javax.swing.text.LabelView.getPreferredSpan(LabelView.java:290)
at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:642)
at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:285)
at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:794)
at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
at javax.swing.text.BoxView.getPreferredSpan(BoxView.java:262)
at javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTextUI.java:918)
at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:551)
at javax.swing.JComponent.getPreferredSize(JComponent.java:705)
at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:934)
at test.Frame1.jbInit(Frame1.java:90)
at test.Frame1.<init>(Frame1.java:39)
at test.Frame1.main(Frame1.java:49)
----------------------------------------------------------------
with line: textPane.setDebugGraphicsOptions(DebugGraphics.FLASH_OPTION);
-------------
C:\jdk1.2.1\bin\javaw.exe -classpath "P:\CD;C:\JBuilder2\lib\jgl3.1.0.jar;C:\JBuilder2\lib\vbjorb.jar;C:\JBuilder2\lib\vbjapp.jar;C:\JBuilder2\lib\vbjgk.jar;C:\JBuilder2\lib\jbclx.jar;C:\JBuilder2\lib\jbcl2.0.jar;C:\JBuilder2\lib\jbcl2.0-res.jar;C:\JBuilder2\dependency\~JBCLX;C:\jdk1.2.1\jre\lib\rt.jar;C:\jdk1.2.1\jre\lib\i18n.jar;C:\jdk1.2.1\lib\dt.jar;C:\JBuilder2\dependency\~javaversion1.2.1" test.Frame1
java.lang.ClassCastException: javax.swing.DebugGraphics
at javax.swing.text.LabelView.syncFragments(LabelView.java:109)
at javax.swing.text.LabelView.getPreferredSpan(LabelView.java:290)
at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:642)
at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:285)
at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:794)
at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
at javax.swing.text.BoxView.getPreferredSpan(BoxView.java:262)
at javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTextUI.java:918)
at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:551)
at javax.swing.JComponent.getPreferredSize(JComponent.java:705)
at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:934)
at java.awt.BorderLayout.layoutContainer(BorderLayout.java:618)
at java.awt.Container.layout(Container.java:490)
at java.awt.Container.doLayout(Container.java:480)
at java.awt.Container.validateTree(Container.java:550)
at java.awt.Container.validateTree(Container.java:557)
at java.awt.Container.validateTree(Container.java:557)
at java.awt.Container.validateTree(Container.java:557)
at java.awt.Container.validate(Container.java:532)
at java.awt.Window.show(Window.java:282)
at java.awt.Component.show(Component.java:838)
at java.awt.Component.setVisible(Component.java:800)
at test.Frame1.main(Frame1.java:52)
------------------------------------------------------------
Take a look at the comment in LabelView
106: // REMIND (bcb) its not clear that this is the right way to get
107: // a font render context.
108: syncProperties();
109: Graphics2D g2d = (Graphics2D)getContainer().getGraphics();
110: FontRenderContext frc = g2d.getFontRenderContext();
--------------------------------------------------------------
I hope this is reproducable on your system
regards
Roman
(Review ID: 84068)
======================================================================
- duplicates
-
JDK-4239618 LabelView is incorrectly getting a FontRendererContext causing NPE
-
- Closed
-