Hi all,
Thanks in advance. I am new at Java. Currently I'm having two java files one is applet. when i try to preview the applet i get an error like this :
java.lang.NullPointerException
at java.util.Hashtable.put(Unknown Source)
at javax.swing.JEditorPane.registerEditorKitForConten tType(Unknown Source)
at javax.swing.JEditorPane.registerEditorKitForConten tType(Unknown Source)
at javax.swing.JEditorPane.loadDefaultKitsIfNecessary (Unknown Source)
at javax.swing.JEditorPane.getKitTypeRegistry(Unknown Source)
at javax.swing.JEditorPane.getEditorKitClassNameForCo ntentType(Unknown Source)
at javax.swing.JTextPane.<init>(Unknown Source)
what i'm doing wrong?pls help me guys...thanks
21 3823
Can you show a bit of (relevant) code please? btw, I changed your topic titile
to something more to the point.
kind regards,
Jos
because you pointed to hashtable that doesn't have the key ?
check your code that use that hashtable ...
Hi all,
Thanks Josah. Erm, what do you mean by hashtable nick?I don't understand..Sorry.btw this is my code that call JTextPane
code :
private JTextArea textArea = null;
private JTextPane resultArea = null;
private JComboBox langBox = null;
private Map<Language, ConfigurationDialog> configDialogs = new HashMap<Language, ConfigurationDialog>();
public void createAndShowGUI(String inputText) {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOS E);
textArea = new JTextArea(inputText);
// TODO: wrong line number is displayed for lines that are wrapped automatically:
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
resultArea = new JTextPane();
resultArea.setContentType("text/html");
resultArea.setText("Results will appear here");
JLabel label = new JLabel("Please type or paste text to check in the top area");
JButton button = new JButton("Check text");
button.setMnemonic('c');
button.addActionListener(this);
Hi all,
Thanks Josah. Erm, what do you mean by hashtable nick?I don't understand..Sorry.btw this is my code that call JTextPane
code :
private JTextArea textArea = null;
private JTextPane resultArea = null;
private JComboBox langBox = null;
private Map<Language, ConfigurationDialog> configDialogs = new HashMap<Language, ConfigurationDialog>();
public void createAndShowGUI(String inputText) {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOS E);
textArea = new JTextArea(inputText);
// TODO: wrong line number is displayed for lines that are wrapped automatically:
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
resultArea = new JTextPane();
resultArea.setContentType("text/html");
resultArea.setText("Results will appear here");
JLabel label = new JLabel("Please type or paste text to check in the top area");
JButton button = new JButton("Check text");
button.setMnemonic('c');
button.addActionListener(this);
1.) Please use code tags when posting code.
2.) If you look at that stacktrace again, you'll see that it tells you the exact line number where that exception was thrown. That line and the code lines around it are the relevant code that Jos asked you to post.
oh...thanks guys,
ok...here is the code that is relevant to the trace and the full trace
trace : -
-
Java Plug-in 1.6.0_02
-
Using JRE version 1.6.0_02 Java HotSpot(TM) Client VM
-
User home directory = C:\Documents and Settings\Administrator
-
network: Loading user-defined proxy configuration ...
-
network: Done.
-
network: Loading proxy configuration from Internet Explorer ...
-
network: Done.
-
network: Loading direct proxy configuration ...
-
network: Done.
-
network: Proxy Configuration: No proxy
-
-
-
----------------------------------------------------
-
c: clear console window
-
f: finalize objects on finalization queue
-
g: garbage collect
-
h: display this help message
-
l: dump classloader list
-
m: print memory usage
-
o: trigger logging
-
p: reload proxy configuration
-
q: hide console
-
r: reload policy configuration
-
s: dump system and deployment properties
-
t: dump thread list
-
v: dump thread stack
-
x: clear classloader cache
-
0-5: set trace level to <n>
-
----------------------------------------------------
-
-
liveconnect: Invoking JS method: document
-
liveconnect: Invoking JS method: URL
-
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@12498b5, refcount=1
-
basic: Added progress listener: sun.plugin.util.GrayBoxPainter@f5da06
-
basic: Loading applet ...
-
basic: Initializing applet ...
-
basic: Starting applet ...
-
basic: completed perf rollup
-
liveconnect: Invoking method: public void test.check(java.lang.String)
-
liveconnect: Needs conversion: java.lang.String --> java.lang.String
-
java.lang.NullPointerException
-
at java.util.Hashtable.put(Unknown Source)
-
at javax.swing.JEditorPane.registerEditorKitForContentType(Unknown Source)
-
at javax.swing.JEditorPane.registerEditorKitForContentType(Unknown Source)
-
at javax.swing.JEditorPane.loadDefaultKitsIfNecessary(Unknown Source)
-
at javax.swing.JEditorPane.getKitTypeRegistry(Unknown Source)
-
at javax.swing.JEditorPane.getEditorKitClassNameForContentType(Unknown Source)
-
at javax.swing.JTextPane.<init>(Unknown Source)
-
at mypack.Main.createAndShowGUI(main.java:84)
-
at mypack.Main.openGui(main.java:236)
-
at test.check(test.java:27)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
-
at java.lang.reflect.Method.invoke(Unknown Source)
-
at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
-
at java.lang.reflect.Method.invoke(Unknown Source)
-
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
-
at sun.plugin.com.MethodDispatcher.invoke(Unknown Source)
-
at sun.plugin.com.DispatchImpl.invokeImpl(Unknown Source)
-
at sun.plugin.com.DispatchImpl$1.run(Unknown Source)
-
at java.security.AccessController.doPrivileged(Native Method)
-
at sun.plugin.com.DispatchImpl.invoke(Unknown Source)
-
java.lang.Exception: java.lang.NullPointerException
-
at sun.plugin.com.DispatchImpl.invokeImpl(Unknown Source)
-
at sun.plugin.com.DispatchImpl$1.run(Unknown Source)
-
at java.security.AccessController.doPrivileged(Native Method)
-
at sun.plugin.com.DispatchImpl.invoke(Unknown Source)
-
-
and the relevant code is : -
private JTextArea textArea = null;
-
private JTextPane resultArea = null;
-
private JComboBox langBox = null;
-
-
private Map<Language, ConfigurationDialog> configDialogs = new HashMap<Language, ConfigurationDialog>();
-
-
public Main() {
-
}
-
-
public void createAndShowGUI(String inputText) {
-
JFrame frame = new JFrame("Grammar Check Tool");
-
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
-
textArea = new JTextArea(inputText);
-
// TODO: wrong line number is displayed for lines that are wrapped automatically:
-
textArea.setLineWrap(true);
-
textArea.setWrapStyleWord(true);
-
JTextPane resultArea = new JTextPane();
-
resultArea.setContentType("text/html");
-
resultArea.setText("Results will appear here");
-
JLabel label = new JLabel("Please type or paste text to check in the top area");
-
JButton button = new JButton("Check text");
-
button.setMnemonic('c');
-
button.addActionListener(this);
-
-
JButton configButton = new JButton(OPTIONS_BUTTON);
-
configButton.setMnemonic('o');
-
configButton.addActionListener(this);
-
-
JPanel panel = new JPanel();
-
panel.setLayout(new GridBagLayout());
-
GridBagConstraints buttonCons = new GridBagConstraints();
-
buttonCons.gridx = 0;
-
buttonCons.gridy = 0;
-
panel.add(button, buttonCons);
-
buttonCons.gridx = 1;
-
buttonCons.gridy = 0;
-
panel.add(new JLabel(" "), buttonCons);
-
buttonCons.gridx = 2;
-
buttonCons.gridy = 0;
-
-
buttonCons.gridx = 3;
-
buttonCons.gridy = 0;
-
buttonCons.insets = new Insets(0, 10, 0, 0);
-
//panel.add(configButton, buttonCons);
-
-
Container contentPane = frame.getContentPane();
-
GridBagLayout gridLayout = new GridBagLayout();
-
contentPane.setLayout(gridLayout);
-
GridBagConstraints cons = new GridBagConstraints();
-
cons.fill = GridBagConstraints.BOTH;
-
cons.weightx = 10.0f;
-
cons.weighty = 10.0f;
-
cons.gridx = 0;
-
cons.gridy = 0;
-
contentPane.add(new JScrollPane(textArea), cons);
-
cons.gridy = 1;
-
cons.weighty = 5.0f;
-
contentPane.add(new JScrollPane(resultArea), cons);
-
-
cons.fill = GridBagConstraints.NONE;
-
cons.gridx = 0;
-
cons.gridy = 2;
-
cons.weighty = 0.0f;
-
cons.insets = new Insets(3,3,3,3);
-
//cons.fill = GridBagConstraints.NONE;
-
contentPane.add(label, cons);
-
cons.gridy = 3;
-
contentPane.add(panel, cons);
-
-
frame.pack();
-
frame.setSize(600, 600);
-
frame.setVisible(true);
-
}
-
-
Thanks for your help...
Which of the lines is line #84 in method createAndShowGUI()?
kind regards,
Jos
Which of the lines is line #84 in method createAndShowGUI()?
kind regards,
Jos
resultArea = new JTextPane();
regards,
teenICe
Here is one nit that is a good recipe for brewing nullpointers.
You have - JTextPane resultArea = new JTextPane();
inside your createGUI method. This hides the resultArea already defined in the class using - private JTextPane resultArea = null;
. The later resultArea variable is thus probably not being initialized properly.
resultArea = new JTextPane();
regards,
teenICe
Got it: you have a member variable resultArea but you also define a local variable
with the same name; it effectively hides the member variable which will remain
null all the time. Don't define that local variable.
kind regards,
Jos
resultArea = new JTextPane();
regards,
teenICe
Something is rotten in the state of Denmark here ...
so..its means I must comment out this code : - private JTextPane resultArea = null;
thanks guys...
I'll try it... :)
so..its means I must comment out this code : - private JTextPane resultArea = null;
thanks guys...
I'll try it... :)
That's not what Jos said. Read it again. Just don't define a new variable for it in your method.
@Jos, why would he get a nullpointer at that line? I'd expect the nullpointer to occur somewhere else, most likely outside the createGUI method.
No...I try to comment out the code but still have same error...I don't know what I'm doing wrong.Hmm...maybe I'm not understand enough.Can you guys explain it to me??Please...
Thanks in advance..
No...I try to comment out the code but still have same error...I don't know what I'm doing wrong.Hmm...maybe I'm not understand enough.Can you guys explain it to me??Please...
Thanks in advance..
Read the responses again. Commenting out lines of code that give errors does not neccessarily remove the errors.
In your method, you have - JTextPane resultArea = new JTextPane();
Just change that to - resultArea = new JTextPane();
like you did with that text area.
@Jos, why would he get a nullpointer at that line? I'd expect the nullpointer to occur somewhere else, most likely outside the createGUI method.
I don't know but I suspect the code is different from what we see here. A different
version mayhap ... that local variable definitely is a nono.
kind regards,
Jos
Commenting out lines of code that give errors does not neccessarily remove the errors.
That's the good ol' "amputation strategy". The old Romans already did that:
does your leg hurt? *Chop!* now it doesn't hurt anymore.
Nowadays people sometimes mistake Occam's Razor for the "amputation strategy" ;-)
kind regards,
Jos
I had try both of the method and still it give error.Let me explain what I'm trying to do and sorry if I had you guys confuse with my code.. :). The code that I copy just now is from open source code and it is create a gui for the application. The code is already a GUI so I create an applet to access the function that create the GUI and launch it using an applet so I can pass my parameters to certain function in the main code.
Now I'll paste the main code that create gui -
-
public class Main implements ActionListener {
-
-
private static final String OPTIONS_BUTTON = "Options...";
-
-
private JTextArea textArea = null;
-
private JTextPane resultArea = null;
-
private JComboBox langBox = null;
-
-
private Map<Language, ConfigurationDialog> configDialogs = new HashMap<Language, ConfigurationDialog>();
-
-
public Main() {
-
}
-
-
public void createAndShowGUI(String inputText) {
-
JFrame frame = new JFrame("Grammar Check Tool");
-
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
-
textArea = new JTextArea(inputText);
-
// TODO: wrong line number is displayed for lines that are wrapped automatically:
-
textArea.setLineWrap(true);
-
textArea.setWrapStyleWord(true);
-
resultArea = new JTextPane();
-
resultArea.setContentType("text/html");
-
resultArea.setText("Results will appear here");
-
JLabel label = new JLabel("Please type or paste text to check in the top area");
-
JButton button = new JButton("Check text");
-
button.setMnemonic('c');
-
button.addActionListener(this);
-
-
JButton configButton = new JButton(OPTIONS_BUTTON);
-
configButton.setMnemonic('o');
-
configButton.addActionListener(this);
-
-
JPanel panel = new JPanel();
-
panel.setLayout(new GridBagLayout());
-
GridBagConstraints buttonCons = new GridBagConstraints();
-
buttonCons.gridx = 0;
-
buttonCons.gridy = 0;
-
panel.add(button, buttonCons);
-
buttonCons.gridx = 1;
-
buttonCons.gridy = 0;
-
panel.add(new JLabel(" "), buttonCons);
-
buttonCons.gridx = 2;
-
buttonCons.gridy = 0;
-
langBox = new JComboBox();
-
/*for (Language lang : Language.LANGUAGES) {
-
if (lang != Language.DEMO) {
-
langBox.addItem(lang);
-
}
-
}*/
-
//panel.add(langBox, buttonCons);
-
buttonCons.gridx = 3;
-
buttonCons.gridy = 0;
-
buttonCons.insets = new Insets(0, 10, 0, 0);
-
//panel.add(configButton, buttonCons);
-
-
Container contentPane = frame.getContentPane();
-
GridBagLayout gridLayout = new GridBagLayout();
-
contentPane.setLayout(gridLayout);
-
GridBagConstraints cons = new GridBagConstraints();
-
cons.fill = GridBagConstraints.BOTH;
-
cons.weightx = 10.0f;
-
cons.weighty = 10.0f;
-
cons.gridx = 0;
-
cons.gridy = 0;
-
contentPane.add(new JScrollPane(textArea), cons);
-
cons.gridy = 1;
-
cons.weighty = 5.0f;
-
contentPane.add(new JScrollPane(resultArea), cons);
-
-
cons.fill = GridBagConstraints.NONE;
-
cons.gridx = 0;
-
cons.gridy = 2;
-
cons.weighty = 0.0f;
-
cons.insets = new Insets(3,3,3,3);
-
//cons.fill = GridBagConstraints.NONE;
-
contentPane.add(label, cons);
-
cons.gridy = 3;
-
contentPane.add(panel, cons);
-
-
frame.pack();
-
frame.setSize(600, 600);
-
frame.setVisible(true);
-
}
-
-
public void actionPerformed(ActionEvent e) {
-
String langName = "English";
-
Language language = Language.getLanguageForName(langName);
-
ConfigurationDialog configDialog = null;
-
if (configDialogs.containsKey(language)) {
-
configDialog = (ConfigurationDialog)configDialogs.get(language);
-
} else {
-
configDialog = new ConfigurationDialog(null, false);
-
configDialogs.put(language, configDialog);
-
// JOptionPane.showMessageDialog(null,"test");
-
}
-
JLanguageTool langTool;
-
try {
-
langTool = new JLanguageTool(language, configDialog.getMotherTongue());
-
langTool.activateDefaultPatternRules();
-
langTool.activateDefaultFalseFriendRules();
-
Set disabledRules = configDialog.getDisabledRuleIds();
-
if (disabledRules != null) {
-
for (Iterator iter = disabledRules.iterator(); iter.hasNext();) {
-
String ruleId = (String) iter.next();
-
langTool.disableRule(ruleId);
-
}
-
}
-
} catch (IOException ioe) {
-
throw new RuntimeException(ioe);
-
} catch (ParserConfigurationException ex) {
-
throw new RuntimeException(ex);
-
} catch (SAXException ex) {
-
throw new RuntimeException(ex);
-
}
-
if (e.getActionCommand().equals(OPTIONS_BUTTON)) {
-
List rules = langTool.getAllRules();
-
configDialog.show(rules);
-
} else {
-
if (textArea.getText().trim().equals("")) {
-
textArea.setText("Please insert text to check here");
-
} else {
-
StringBuffer sb = new StringBuffer();
-
resultArea.setText("Starting check...<br>\n");
-
resultArea.repaint(); // FIXME: why doesn't this work?
-
//TODO: resultArea.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-
sb.append("Starting check in " +langName+ "...<br>\n");
-
int matches = 0;
-
try {
-
matches = checkText(langTool, textArea.getText(), sb);
-
} catch (Exception ex) {
-
sb.append("<br><br><b><font color=\"red\">" + ex.toString() + "<br>");
-
StackTraceElement[] elements = ex.getStackTrace();
-
for (StackTraceElement element : elements) {
-
sb.append(element + "<br>");
-
}
-
sb.append("</font></b><br>");
-
ex.printStackTrace();
-
}
-
sb.append("Check done. " +matches+ " potential problems found<br>\n");
-
resultArea.setText(sb.toString());
-
resultArea.setCaretPosition(0);
-
}
-
}
-
}
-
-
public int checkText(JLanguageTool langTool, String text, StringBuffer sb) throws IOException {
-
long startTime = System.currentTimeMillis();
-
List ruleMatches = langTool.check(text);
-
long startTimeMatching = System.currentTimeMillis();
-
int i = 0;
-
for (Iterator iter = ruleMatches.iterator(); iter.hasNext();) {
-
RuleMatch match = (RuleMatch) iter.next();
-
sb.append("<br>\n<b>" +(i+1)+ ". Line " + (match.getLine() + 1) + ", column " + match.getColumn()
-
+ "</b><br>\n");
-
String msg = match.getMessage();
-
msg = msg.replaceAll("<suggestion>", "<b>");
-
msg = msg.replaceAll("</suggestion>", "</b>");
-
msg = msg.replaceAll("<old>", "<b>");
-
msg = msg.replaceAll("</old>", "</b>");
-
sb.append("<b>Message:</b> " + msg + "<br>\n");
-
sb.append("<b>Context:</b> " + Tools.getContext(match.getFromPos(), match.getToPos(), text));
-
sb.append("<br>\n");
-
i++;
-
}
-
long endTime = System.currentTimeMillis();
-
sb.append("<br>\nTime: " + (endTime - startTime) + "ms (including "
-
+ (endTime - startTimeMatching) + "ms for rule matching)<br>\n");
-
return ruleMatches.size();
-
}
-
-
public void openGui (String input) {
-
/*final Main prg = new Main();
-
prg.createAndShowGUI("They is around. ");*/
-
JOptionPane.showMessageDialog(null,"open");
-
createAndShowGUI(input);
-
}
-
-
-
}
-
I hope you can help me to understand this code too.I really appreciate it.Thanks guys....
And this is the trace when i try to launch the GUI with my applet. -
-
Java Plug-in 1.6.0_02
-
Using JRE version 1.6.0_02 Java HotSpot(TM) Client VM
-
User home directory = C:\Documents and Settings\Administrator
-
network: Loading user-defined proxy configuration ...
-
network: Done.
-
network: Loading proxy configuration from Internet Explorer ...
-
network: Done.
-
network: Loading direct proxy configuration ...
-
network: Done.
-
network: Proxy Configuration: No proxy
-
-
-
----------------------------------------------------
-
c: clear console window
-
f: finalize objects on finalization queue
-
g: garbage collect
-
h: display this help message
-
l: dump classloader list
-
m: print memory usage
-
o: trigger logging
-
p: reload proxy configuration
-
q: hide console
-
r: reload policy configuration
-
s: dump system and deployment properties
-
t: dump thread list
-
v: dump thread stack
-
x: clear classloader cache
-
0-5: set trace level to <n>
-
----------------------------------------------------
-
-
liveconnect: Invoking JS method: document
-
liveconnect: Invoking JS method: URL
-
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@12498b5, refcount=1
-
basic: Added progress listener: sun.plugin.util.GrayBoxPainter@f5da06
-
basic: Loading applet ...
-
basic: Initializing applet ...
-
basic: Starting applet ...
-
basic: completed perf rollup
-
liveconnect: Invoking method: public void test.check(java.lang.String)
-
liveconnect: Needs conversion: java.lang.String --> java.lang.String
-
java.lang.NullPointerException
-
at java.util.Hashtable.put(Unknown Source)
-
at javax.swing.JEditorPane.registerEditorKitForContentType(Unknown Source)
-
at javax.swing.JEditorPane.registerEditorKitForContentType(Unknown Source)
-
at javax.swing.JEditorPane.loadDefaultKitsIfNecessary(Unknown Source)
-
at javax.swing.JEditorPane.getKitTypeRegistry(Unknown Source)
-
at javax.swing.JEditorPane.getEditorKitClassNameForContentType(Unknown Source)
-
at javax.swing.JTextPane.<init>(Unknown Source)
-
at mypack.Main.createAndShowGUI(main.java:84)
-
at mypack.Main.openGui(main.java:238)
-
at test.check(test.java:27)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
-
at java.lang.reflect.Method.invoke(Unknown Source)
-
at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
-
at java.lang.reflect.Method.invoke(Unknown Source)
-
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
-
at sun.plugin.com.MethodDispatcher.invoke(Unknown Source)
-
at sun.plugin.com.DispatchImpl.invokeImpl(Unknown Source)
-
at sun.plugin.com.DispatchImpl$1.run(Unknown Source)
-
at java.security.AccessController.doPrivileged(Native Method)
-
at sun.plugin.com.DispatchImpl.invoke(Unknown Source)
-
java.lang.Exception: java.lang.NullPointerException
-
at sun.plugin.com.DispatchImpl.invokeImpl(Unknown Source)
-
at sun.plugin.com.DispatchImpl$1.run(Unknown Source)
-
at java.security.AccessController.doPrivileged(Native Method)
-
at sun.plugin.com.DispatchImpl.invoke(Unknown Source)
-
-
any luck in resolving your problem? I have the same exception trace inside of my applet too...
thanks,
Gregory
any luck in resolving your problem? I have the same exception trace inside of my applet too...
thanks,
Gregory
No, I just don't use the interface anymore. Sorry I'm not so helpful too.
any luck in resolving your problem? I have the same exception trace inside of my applet too...
thanks,
Gregory
Hi Gregory! Welcome to TSDN!
We might be able to help you nevertheless if you post the relevant code and (even if it's the same) your stack trace.
Greetings,
nepomuk
Post your reply Sign in to post your reply or Sign up for a free account.
Similar topics
4 posts
views
Thread by gabryh |
last post: by
|
2 posts
views
Thread by Smith |
last post: by
|
reply
views
Thread by Ike |
last post: by
| | | | | | | | | | | | | | | | |