gpt4 book ai didi

java - 如何将参数传递给 SwingWorker?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:37 25 4
gpt4 key购买 nike

我正在尝试在我的 GUI 中实现 Swing worker。目前我有一个包含按钮的 JFrame。当按下它时,它应该更新显示的选项卡,然后在后台线程中运行程序。这是我目前所拥有的。

class ClassA
{
private static void addRunButton()
{
JButton runButton = new JButton("Run");
runButton.setEnabled(false);
runButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
new ClassB().execute();
}
});

mainWindow.add(runButton);
}
}

class ClassB extends SwingWorker<Void, Integer>
{
protected Void doInBackground()
{
ClassC.runProgram(cfgFile);
}

protected void done()
{
try
{
tabs.setSelectedIndex(1);
}
catch (Exception ignore)
{
}
}
}

虽然我不明白如何传递我的 cfgFile 对象。请问有人可以就此提出建议吗?

最佳答案

为什么不给它一个 File 字段并通过带有 File 参数的构造函数填充该字段?

class ClassB extends SwingWorker<Void, Integer>
{
private File cfgFile;

public ClassB(File cfgFile) {
this.cfgFile = cfgFile;
}

protected Void doInBackground()
{
ClassC.runProgram(cfgFile);
}

protected void done()
{
try
{
tabs.setSelectedIndex(1);
}
catch (Exception ignore)
{
// *** ignoring exceptions is usually not a good idea. ***
}
}
}

然后像这样运行它:

public void actionPerformed(ActionEvent e) 
{
new ClassB(cfgFile).execute();
}

关于java - 如何将参数传递给 SwingWorker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895428/

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