2012-09-21 6 views
0

스윙을 사용하여 Java에서 기본 편집기 유형의 GUI를 설계하려고합니다. 메뉴 항목을 New 클릭하여 GUI를 채우기 위해 빈 텍스트 영역을 원합니다. 내 코드는 folows과 같습니다 그러나버튼 클릭시 동일한 양식의 텍스트 팬 열기


import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class UI extends JFrame { 
    private JMenuBar bar; 
    private JMenu menu; 
    private JMenuItem item; 
    private JTextPane tp; 

    public UI() { 
     setLayout(new FlowLayout()); 
     bar = new JMenuBar(); 
     setJMenuBar(bar); 

     menu = new JMenu("File"); 
     bar.add(menu); 

     item = new JMenuItem("New"); 
     menu.add(item); 
     item.addActionListener(new xyz()); 
    } 

    public class xyz implements ActionListener { 
     public void actionPerformed(ActionEvent arg0) { 
      JTextPane tp = new JTextPane(); 
      add(tp); 
     } 
    } 

    public static void main(String args[]) { 
     // do the rest of the stuffs 
    } 
} 

, 심지어 New 클릭에, 나는 동일한 프레임에 textPane을하지 않습니다. 누군가 설명해 주시겠습니까? 대신

답변

1
  • 사용 JTextPane#setText("")(re)validate()repaint()

+0

나는 또한 이것을 시도 : tp.setText (""); 하지만 작동하지 않는 것 같습니다. – OneMoreError

+0

[JTextPane # setText()]에 대한 [SSCCE] (http://sscce.org/) 게시 (http://docs.oracle.com/javase/7/docs/api/javax/) swing/JEditorPane.html # setText % 28java.lang.String % 29)가 작동하지 않습니다. – mKorbel

+0

@CSSS tp.setText ("")가 작동합니다. "New"를 클릭 할 때마다 내용이 지워지도록 actionPerformed() 메소드에서 호출해야합니다. – Rempelos

1

텍스트 창 아마 JTabbedPane 경우에 추가해야와 Container을 통지해야한다, 그렇지 않으면 새로운 JTextPane

  • 을 만들 수 있습니다 이 응용 프로그램. 여러 문서를 지원합니다. '단일 문서'를위한 것이라면 시작시 텍스트 창을 프레임 위에 놓습니다.

  • 관련 문제