2012-09-21 111 views
0

我想用Swing设计基于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("")创建一个新的JTextPane

  • ,否则你有(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(“”)确实有效。您应该从actionPerformed()方法中调用它,以便每次单击“新建”时清除内容。 – Rempelos

1

文本窗格或许应该被添加到JTabbedPane如果通知Container这个程序。支持多个文件。如果打算用于“单个文档”,则在启动时将文本窗格放到框架上。

相关问题