在按钮单击上以相同的形式打开文本窗格

时间:2012-09-21 17:30:42

标签: java swing user-interface runtime jtextpane

我正在尝试使用Swing在Java中设计GUI的基本编辑器类型。我有一个名为New的菜单项,我想要一个空白文本区域来填充GUI。我的代码如下:


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。有人可以解释一下。

2 个答案:

答案 0 :(得分:1)

  • 使用JTextPane#setText("")代替创建新的JTextPane

  • 否则您必须通过Container(re)validate()

  • 通知repaint()

答案 1 :(得分:1)

如果此应用可能会将文本窗格添加到JTabbedPane。支持多个文档。如果它用于“单个文档”,请在启动时将文本窗格放在框架上。