我正在使用Java文本编辑器(Swing)。到目前为止,我已经做了身体。我有这个功能的问题:
当用户单击该按钮时,JTextArea内容应替换为空字符串。这是我的代码(我正在使用与问题无关的代码,例如创建菜单、添加菜单项,只添加类。)
这是TextArea类:
class MyTextArea extends JTextArea implements ActionListener {
JTextArea myTextArea;
public MyTextArea() {
init();
}
public void init(){
setLineWrap(true);
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
(如你所见,是空的。)
这是MenuBar类:
class MyMenuBar extends JMenuBar implements ActionListener {
private JMenu mArchivo;
private JMenuItem mNuevo;
public MyMenuBar(){
init();
add(mArchivo);
}
private void init() {
mArchivo = settingUpMenus("Archivo", "Archivo", 'A');
mNuevo = settingUpMenuItems("Nuevo", "Nuevo", 'N');
mArchivo.add(mNuevo);
}
private JMenu settingUpMenus(String mTitle, String mDescription,
char mMnemonic) {
JMenu mMenu;
mMenu = new JMenu(mTitle);
mMenu.setMnemonic(mMnemonic);
mMenu.getAccessibleContext().setAccessibleDescription(mDescription);
mMenu.setActionCommand(mTitle);
mMenu.addActionListener(this::actionPerformed);
return mMenu;
}
private JMenuItem settingUpMenuItems(String mTitle, String
mDescription, char mMnemonic) {
JMenuItem mMenuItem;
mMenuItem = new JMenuItem(mTitle);
mMenuItem.setMnemonic(mMnemonic);
mMenuItem.getAccessibleContext().
setAccessibleDescription(mDescription);
mMenuItem.setActionCommand(mTitle);
mMenuItem.addActionListener(this::actionPerformed);
return mMenuItem;
}
@Override
public void actionPerformed(ActionEvent e) {
switch(e.getActionCommand()) {
case "Nuevo":
onNew();
break;
}
}
private void onNew() {
}
}
这是类构造函数,我在其中添加了JTextArea和JMenu,以及它的项和所有内容。
public Editor() {
JScrollPane myScrollPane = new JScrollPane(new MyTextArea(),
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
systemLook();
setTitle("Text editor");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(new Dimension(800, 700));
setVisible(true);
setJMenuBar(new MyMenuBar());
add(myScrollPane);
}
然而,我已经尝试了很多方法让我的新按钮访问JTextArea的当前实例并对其进行修改,比如在JMenu类中的actionPerformed方法中使用ActionEvent对象获取父类。但我所做的任何一件事都无法进入JTextArea。有什么想法吗?我应该用另一种方式实现它吗?
只需将其作为参数传递到菜单栏的构造函数中,如
...
private JTextArea myTextArea;
public MyMenuBar(MyTextArea myTextArea){
init();
add(mArchivo);
this.myTextArea = myTextArea;
}
...
总的来说
MyTextArea myTextArea = new MyTextArea();
JScrollPane myScrollPane = new JScrollPane(myTextArea,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
systemLook();
setTitle("Text editor");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(new Dimension(800, 700));
setVisible(true);
setJMenuBar(new MyMenuBar(myTextArea));
问题内容: 我正在开发一个应用程序,当我从列表中选择一个值(文件)时,应该在另一种形式的jTextPane中打开它。我正在使用两个面板,一个是显示我的列表的mainpanel,另一个是ExcelSheet,当我单击列表值时,mainpanel关闭并显示新表单ExcelSheet,但不显示jTextPane中doc文件的内容。 问题答案: 使用封装,为了显示给定文件更新文本窗格中的代码。您可以从添加
我正在开发一个应用程序,当我从列表中选择一个值(文件)时,它应该以不同的形式在jTextPane中打开。我使用的是两个面板,一个是显示列表的主面板,另一个是ExcelSheet,当我单击列表值时,主面板关闭,新表单ExcelSheet显示,但jTextPane中的文档文件内容不显示。
如何从AWS Lambda函数中读取Dynamodb记录? 我正试图通过以下方式调用get_item: 但是,当我通过Lambda测试工具运行测试时,它失败并出现错误: 尽管文档说get_item应该返回包含字典的对象,但它实际上返回: 为什么没有提供项目?如何从Dynamo检索记录?
问题内容: 是否可以从Java内部类中获取对它的引用? 即 问题答案: 您可以像这样访问外部类的实例:
在Spring Boot项目中,我试图从我的IDE中查看内存中的表。 如何从Intellij IDEA访问内存中的h2数据库。 这是我的应用程序的一个片段。yml:
问题内容: 如何从片段(android.support.v4.app.Fragment)中访问ActionBar。我正在使用Android支持库v4和v7。我没有使用Sherlock库。 承载片段的活动是ActionBarActivity。 我已经阅读了Android帮助片段Fragment,它也导致了我getActivity(),但是没有getSupportActionBar()方法。 问题答案