В моем приложении к блокноту я пытаюсь добавить изображение, как если бы оно было JLabel
, в JTextPane
, нажав на JMenuItem
по имени Picture
.Вставьте картинку в JTextPane
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));
)? Есть ли другой, который должен написать мой код, чтобы выполнить это правильно?
«Форматирование кода» просто означает, что делает текст код выглядеть красиво и читаемым и не имеет ничего общего с выполнением программы или функции. Просьба уточнить, что вы пытаетесь сделать. –
@HovercraftFullOfEels Хорошо, забудьте о части «форматирования». Мне просто интересно, как вставить изображение в jtextarea после поиска изображения в диалоговом окне и нажатия «Вставить». – Rob
Что вы подразумеваете под «вставкой изображения в JTextArea»? Вы хотите использовать его в качестве фонового изображения? Или вы хотите добавить изображение, как если бы это был JLabel или ImageIcon в JTextArea? Чем яснее ваша проблема, тем легче решать другие проблемы. –