标签:jtextpane actionlistener java image swing
在我的记事本应用程序中,我试图通过单击名为Picture的JMenuItem将图像添加到JTextPane中,就好像它是JLabel一样.
private class Picture implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
fc = new JFileChooser();
FileNameExtensionFilter picture = new FileNameExtensionFilter("JPEG files (*.jpg)", "jpg");
fc.setFileFilter(picture);
fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
if (fc.showDialog(Notepad.this, "Insert")!=JFileChooser.APPROVE_OPTION) return;
filename = fc.getSelectedFile().getAbsolutePath();
// If no text is entered for the file name, refresh the dialog box
if (filename==null) return;
// NullPointerException
textArea.insertIcon(createImageIcon(filename));
}
protected ImageIcon createImageIcon(String path)
{
java.net.URL imgURL = Notepad.class.getResource(path);
if (imgURL != null)
{
return new ImageIcon(imgURL);
}
else
{
JOptionPane.showMessageDialog(frame, "Could not find file: " + path);
return null;
}
}
}
问题出在第20行,其中有一个NullPointerException,我已经知道为什么会发生这种情况但是…我如何编写那行代码,这样我就可以做类似于textPane.add(image)的事情了(因为我可以’做textPane.add(StyleConstants.setIcon(def,createImageIcon(filename));)?还有另外一个我应该写我的代码来正确执行吗?
解决方法:
您可以在文本窗格中添加组件或图标:
textpane.insertIcon(...);
textPane.insertComponent(...);
标签:jtextpane,actionlistener,java,image,swing 来源: https://codeday.me/bug/20190902/1792224.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。