gpt4 book ai didi

java - 如何在jbutton中创建一个方法?

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

所以,我做了一个这样的按钮LoadPlanetLoadRR 中的参数 nomor 是向文本框显示一些数据的参数。我的代码是这样的该按钮显示正确,但如果我单击这些按钮,所有这些按钮都会显示最后一个数据中的数据,这些数据应该是最后一个按钮中的数据。-> tblplanet.JmlPlanet()的结果是8,所以参数就像LoadPlanet(8),这样每个按钮都显示第8个数据。

我的问题是如何让参数按顺序排列,以便按钮可以正确显示数据?有什么想法吗?

public void createButton() {
for (i = 0; i < tblplanet.JmlPlanet(); i++) {
tblplanet.draw(i + 1);
planet_name = tblplanet.getNama_planet();

JButton PlanetJButton = new JButton();
PlanetJButton.setBounds(10, 5 + (i * 35), 95, 26);
PlanetJButton.setText(planet_name);
PanelButton.add(PlanetJButton);

PlanetJButton.addActionListener(
new ActionListener() {

public void actionPerformed(ActionEvent event) {
for (int i = 0; i < tblplanet.JmlPlanet(); i++) {
nomor = i;

LoadPlanet(nomor);
LoadRR(nomor);
}
}
});
}
}

最佳答案

创建一个实现 ActionListener 的类,并采用它所代表的行星的参数 (int)

public class PlanetActionListener implements ActionListener {

private final int planet;

public PlanetActionListener(int planet) {
this.planet = planet;
}

@Override
public void actionPerformed(ActionEvent e) {
LoadPlanet(planet);
LoadRR(planet);
}

}

然后只需将 ActionListener 添加到您的按钮

PlanetJButton.addActionListener(new PlanetActionListener(i));

根据代码的结构,您可能需要将 PlanetActionListener 设为内部类,以便它可以访问适当的方法。请参阅Nested Classes了解更多详情

关于java - 如何在jbutton中创建一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43862435/

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