gpt4 book ai didi

java - jpanel 中的访问按钮

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

在设置过程中调用此函数

 private JPanel Defer()      
{
defer = new JPanel();
defer.setLayout(new BoxLayout(defer, BoxLayout.Y_AXIS));
JButton deferB = new JButton("Defer Staff Key Cutting");
Color col = colour.getColour("White");
deferB.setBackground(col);
deferB.setActionCommand(def);
deferB.addActionListener(this);
defer.add(deferB);
return defer;
}

它工作得很好,听者也有反应。问题是我想在单击按钮时更改按钮的颜色,稍后当我尝试使用此处的相同代码来更改它抛出的颜色和声称 deferB 不是真实的异常时。

由于它是在函数中创建的,我知道它是本地的,但按钮必须以某种方式存在才能在屏幕上显示。

如何访问按钮 deferB 以在函数之外更改其颜色?

此外,如果有人可以解释如何在整个程序中使用局部变量,就像它正在使用一样,那就太好了,因为它对我来说没有意义。

最佳答案

在操作监听器中,您必须调用 .getSource() 方法。这个方法返回对象,所以你必须转换它。或者将其设为私有(private)实例变量。然后您就可以在任何地方访问它。

(JButton)event.getSource();

从你的代码中我可以看出,你工作的类是一个 Action 监听器。这意味着在您的“actionPerformed(ActionEvent event)”方法中,您想要更改颜色。 (因为这是单击时调用的方法。在该方法中,您可以执行 event.getSource(),或者仅使用变量名称(如果您将其作为实例变量)。

private JButton button_;

如果您需要更多说明,请告诉我。

关于java - jpanel 中的访问按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6226542/

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