gpt4 book ai didi

java - 返回修改后的整数,但我的 getter 函数不会修改它。有任何想法吗?

转载 作者:行者123 更新时间:2023-12-01 15:18:30 25 4
gpt4 key购买 nike

我有两个类,一个称为 CreateDefault,它为我的程序创建 GUI 设置。我的另一个类是 tabPanePopup,它为与 CreateDefault 关联的 JTabbedPane 创建一个弹出窗口及其命令。

public int getCount() { return this.count; }

上面的代码返回计数。计数,计算已创建的新文档数量。 getCount() 是 CreateDefault 类的一部分。

以下代码是 tabPanePopup 的一部分。 newTab 执行的操作已写出。在CreateDefault中,原本count = 1,当GUI创建完成后,count加1,总计count = 2。在tabPanePopup类中调用getCount()时,getCount()应该返回2,但它返回1。如果我在 CreateDefault 类中对 count 执行 println 函数,它会打印 2,但在 tabPanePopup 中会打印 1。它这样做有什么原因吗?创建 GUI 时,除了 count++ 之外,我根本不修改 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++);
}
});

最佳答案

这只是一个猜测,因为您的代码还有很多内容尚未向我们透露,但看来您正在上面的方法中创建一个新的 CreateDefault 对象,并且它可能与保存 true 计数结果的 CreateDefault 实例。关键不是创建一个新对象并对其调用getCount(),而是在原始实例上调用此方法。解决方案是以某种方式获取对此原始实例的引用。

所以代替:

public void actionPerformed(ActionEvent action) {
CreateDefault get = new CreateDefault();
int count = get.getCount();

做类似的事情:

public void actionPerformed(ActionEvent action) {
// CreateDefault get = new CreateDefault();
int count = createDefault.getCount();

其中 createDefault 变量以某种方式引用原始 CreateDefault 实例。

关于java - 返回修改后的整数,但我的 getter 函数不会修改它。有任何想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11303876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com