2010-06-01 2 views
0

Я пытаюсь открыть JFilechooser, который фильтрует jpeg, gif и png изображения, затем выбирает пользователя и вставляет его в JEditorPane. Это можно сделать? или я пытаюсь сделать что-то невозможное? Вот пример из моей программы. (Вставка является JMenuItem и MainText является JEditorPane)Может ли пользовательский образ быть вставлен непосредственно в JEditorPane?

insert.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e){ 
    JFileChooser imageChooser = new JFileChooser(); 
     imageChooser.setFileFilter(new FileNameExtensionFilter("Image Format","jpg","jpeg","gif","png")); 
       int choice = imageChooser.showOpenDialog(mainText); 
       if (choice == JFileChooser.APPROVE_OPTION) { 
       mainText.add(imageChooser.getSelectedFile()); 
       } 
     } 
    }); 

Что я пытался сделать, это использовать метод добавления, я знаю, что это неправильно, но просто чтобы дать вам представление о том, что я пытаюсь это сделать. Прежде чем вы пожалеете, я сожалею о форматировании кода, я действительно не знаю всех соглашений о том, что считается хорошим или плохим. спасибо.

Это часть кода, который я использую для сохранения html-файла.

else if (e.getSource() == save) { 
     JFileChooser saver = new JFileChooser(); 
     saver.setFileFilter(new FileNameExtensionFilter(".html (webpage format)" , "html")); 
     int option = saver.showSaveDialog(this); 
     if (option == JFileChooser.APPROVE_OPTION) { 
      try { 
       BufferedWriter out = new BufferedWriter(new FileWriter(saver.getSelectedFile().getPath())); 
       out.write(mainText.getText()); 
       out.close(); 
      } catch (Exception exception) { 
       System.out.println(exception.getMessage()); 
      } 
     } 
    } 

ответ

0

Его проще всего использовать JTextPane. Затем вы можете использовать insertIcon (...) в любом месте текста.

Edit:

Я никогда не везло пытается манипулировать HTML, но я использовал код как следующее перед:

HTMLEditorKit editorKit = (HTMLEditorKit)textPane.getEditorKit(); 
text = "<a href=\"abc\">hyperlink</a>"; 
editorKit.insertHTML(doc, textPane.getCaretPosition(), text, 0, 0, HTML.Tag.A); 

Так предположительно код будет похож для тега IMG.

+0

спасибо, ЭТО было то, что я искал, я почему-то предполагал, что JEditorPane и JTextPane будут иметь те же методы, поскольку они действительно похожи. спасибо –

+0

да, но возможно ли, что, когда я сохраню файл как html, я могу открыть его в своем браузере, и изображение появится именно так? потому что это мое единственное беспокойство. –

+0

Эти два компонента используются для разных целей. Если вам нужен текст в формате HTML, это не сработает. См. Мое редактирование выше. – camickr

0

Это следует сделать это:

mainText.setContentType("text/html"); 
String image = String.format("<img src=\"%s\">", imageChooser.getSelectedFile()); 
mainText.setText(image); 
+0

Большое вам спасибо, я был в пробной и ошибочной ситуации с этим в течение нескольких дней, пока я решил попросить о помощи здесь, спасибо. –

+0

и что, если я захочу добавить его в конец некоторого текста, который я уже написал? Я имею в виду, я не могу использовать setText (mainText.getText() + изображение); потому что это выведет его за пределы тегов тела, что я могу сделать в этом случае? –

+0

@JIM, то, что я хотел бы сделать, это String text = mainText.getText(), а затем метод String substring() отключил последние 7 символов (). Затем добавьте и добавьте новый. Вызов подстроки может выглядеть как text = text.substring (0, text.length() - 7); – jonescb

 Смежные вопросы

  • Нет связанных вопросов^_^