我正在尝试使用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。有人可以解释一下。
答案 0 :(得分:1)
使用JTextPane#setText("")
代替创建新的JTextPane
否则您必须通过Container
和(re)validate()
repaint()
答案 1 :(得分:1)
如果此应用可能会将文本窗格添加到JTabbedPane
。支持多个文档。如果它用于“单个文档”,请在启动时将文本窗格放在框架上。