gpt4 book ai didi

Java Swing : Access panel components from another class

转载 作者:行者123 更新时间:2023-11-30 07:13:34 26 4
gpt4 key购买 nike

嗨,我基本上有两个类(class),一个主要的和一个只是为了分隔面板,只是为了代码的可读性。

我有:

public class Main{

public static void main (String args[]) {
JFrame mainJFrame;
mainJFrame = new JFrame();

//some other code here

CenterPanel centerPanel = new CenterPanel();
centerPanel.renderPanel();
mainFrame.add(centerPanel.getGUI());

}


}

class CenterPanel{
JPanel center = new JPanel();

public void renderPanel(){
JButton enterButton = new JButton("enter");
JButton exitButton = new JButton("exit");
center.add(exitButton);
center.add(enterButton);
}

public JComponent getGUI(){
return center;
}
}

以上代码完美运行。它呈现包含进入和退出按钮的 centerPanel。我的问题是:

我仍然需要在主体中操作按钮,比如改变颜色、添加一些 Action 监听器等。但是我不能再在ma​​in中访问它们,因为从技术上讲它们来自不同的类,因此在main中,centerPanel是另一个对象。

如何访问按钮并使用它(集、 Action 监听器等)?即使他们来自另一个类(class),我仍然希望在主类(class)中使用它?非常感谢!

最佳答案

使按钮成为 CenterPanel 的成员

class CenterPanel{
JPanel center = new JPanel();

JButton enterButton;
JButton exitButton;

public void renderPanel(){
enterButton = new JButton("enter");
exitButton = new JButton("exit");
center.add(exitButton);
center.add(enterButton);
}

public JButton getEnterButton()
{
return enterButton;
}

public JButton getExitButton()
{
return exitButton;
}

public JComponent getGUI(){
return center;
}
}

关于Java Swing : Access panel components from another class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345445/

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