2010-06-01 2 views
0

jpeg, gif 및 png 이미지를 필터링하는 JFilechooser를 열고 사용자 선택을 가져 와서 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 (...)을 사용할 수 있습니다.

편집 : 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

그리고 이미 작성한 일부 텍스트의 끝에 추가하고 싶다면 어떻게해야합니까? 내 말은, 나는 canT setText (mainText.getText() + image); 그것은 body 태그 바깥에 놓을 것이기 때문에, 나는 그 경우 무엇을 할 수 있을까요? –

+0

@JIM, 나는 무엇을 할 것인가 문자열 텍스트 = mainText.getText() 다음 문자열의 substring() 메서드를 사용하여 마지막 7 문자 ()를 잘라. 그런 다음 을 추가하고 새을 추가하십시오. 하위 문자열 호출은 text = text.substring (0, text.length() - 7); – jonescb

관련 문제