【发布时间】:2017-03-09 02:28:51
【问题描述】:
我正在创建一种记事本,它有一个用于行计数器的窗格,它告诉我行的位置(当我按 Enter 时它会增加)和另一个用于行和列计数器的窗格(就像 Notepad++ 一样)。我想动态添加标签,所以每次我选择“新建”选项时,都会创建一个新标签。默认情况下,我的记事本从打开一个选项卡开始,就像 Notepad++ 一样。让我们将此选项卡称为 TAB1
- 如果我按“新建”,它将创建一个新选项卡,我们称之为 TAB2。现在我们有了 TAB1 和 TAB2
- 如果我再次按“新建”,它将创建一个新选项卡,我们称之为 TAB3,所以我现在将有 3 个选项卡:TAB1、TAB2、TAB3。
现在,如果我想选择 TAB2 来编辑其中的内容,这是我的程序无法正常工作的地方,因为如果我想按 Enter 进入新行,它不会在 TAB2 中添加新行,它将在 TAB3 中添加一个新行。我该如何解决这个问题?
这里是 ActionListener ,我在这里说如果我从菜单栏中按“新建”会发生什么。 state() 是我进行布局的函数。
if(menuFileNew == e.getSource())
{
state();
Action newline = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
thisTextArea.setText(thisTextArea.getText()+"\n");
counter++;
thisLineCounterPane.setText(thisLineCounterPane.getText()+counter+"\n");
}
};
thisTextArea.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), NEWLINE);
thisTextArea.getActionMap().put(NEWLINE, newline);
}
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖minimal reproducible example 或Short, Self Contained, Correct Example。
-
也许是一个“白痴”问题,但是每个选项卡都有一个 JTextArea 实例吗?
-
我有 2 个 textArea 实例。 1 用于第一个选项卡,另一个用于我将添加的任何选项卡。由于我想以动态方式进行操作,因此我不知道如何创建单独的 textAreas。不是“白痴”问题,不用担心。
标签: java swing jtabbedpane