gpt4 book ai didi

java - 从外部类更改 TabbedPane 索引

转载 作者:行者123 更新时间:2023-12-02 09:24:27 25 4
gpt4 key购买 nike

我在一个名为App的类中有一个TabbedPane,我想在这个类中运行一个方法。我添加了两个选项卡,其中一个是 Login 类中的 JPanel,另一个是空选项卡。这是类(class):

public class App {
private static JTabbedPane tabbedPane;
public JPanel mainPanel;

public App(){
tabbedPane.addTab("Login", new Login().mainPanel);
tabbedPane.addTab("test", new JPanel());
changeFocus(0);
}

public void changeFocus(int i){
//CODE HERE
}

}

现在我想从外部类运行一个名为 changeFocus() 的方法。 A 使用如下构造函数向 Login 类添加了一个 actionListener:

public Login() {
logInButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
App.changeFocus(1);
}
});
}

现在我问为什么这不起作用,并且 changeFocus() 必须是静态。如果我将其更改为静态,为什么JTabbedPane不能是静态的并抛出错误。

最佳答案

只需将 App 作为参数传递给 Login 的构造函数即可:

 tabbedPane.addTab("Login", new Login(this).mainPanel);

然后:

public Login(App app) {
logInButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
app.changeFocus(1);
}
});
}

关于java - 从外部类更改 TabbedPane 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438840/

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