我有两个类,一个叫做 CreateDefault,它为我的程序创建 GUI 设置。我的另一个类是 tabPanePopup,它为与 CreateDefault 关联的 JTabbedPane 创建一个弹出窗口及其命令。
public int getCount() { return this.count; }
上面的代码,返回计数。计数,计算创建了多少个新文档。getCount() 是 CreateDefault 类的一部分。
下面的代码是 tabPanePopup 的一部分。newTab 执行的操作已经写出。在 CreateDefault 中,最初 count = 1,然后在 GUI 完全创建时增加 1,总计 count = 2。在 tabPanePopup 类中调用 getCount() 时,getCount() 应该返回 2,但它返回 1。如果我在 CreateDefault 类中对 count 执行 println 函数,它会打印 2,但会在 tabPanePopup 中打印 1。它这样做有什么理由吗?在创建 GUI 时,除了 count++ 之外,我根本不修改计数,并且在创建 GUI 之后才能调用 getCount() 函数。
newTab.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent action) {
CreateDefault get = new CreateDefault();
int count = get.getCount();
String parsed = Integer.toString(count);
Font myFont = new Font("Calibri", Font.BOLD, 12);
JEditorPane editorPane = new JEditorPane();
JScrollPane scrollPane = new JScrollPane(editorPane,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
LineCounter counter = new LineCounter(editorPane);
UndoManager manager = new UndoManager();
Document document = editorPane.getDocument();
document.addUndoableEditListener(manager);
scrollPane.setRowHeaderView(counter);
counter.setBackground(Color.white);
tabPane.setFont(myFont);
tabPane.addTab("New Document " + parsed, scrollPane);
tabPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
get.setCount(count++);
}
});