gpt4 book ai didi

java - 如何为任何 JButton 添加两个不同的事件

转载 作者:行者123 更新时间:2023-11-29 08:07:23 25 4
gpt4 key购买 nike

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class Proyecto_Frame extends JFrame {
private ImageIcon Aston;
private ImageIcon Ferrari;
private ImageIcon Lambo;
private ImageIcon McLaren;
/**
*
*/
private static final long serialVersionUID = 1L;



public Proyecto_Frame () {
super ("Carrera");
this.setLayout(null);

Aston = new ImageIcon (getClass().getResource("Aston1.png"));
Ferrari = new ImageIcon (getClass().getResource("Ferrari1.png"));
Lambo = new ImageIcon (getClass().getResource("Lambo1.png"));
McLaren = new ImageIcon (getClass().getResource("McLaren1.png"));

final JLabel Aston1 = new JLabel(Aston);
final JLabel Ferrari1 = new JLabel(Ferrari);
final JLabel Lambo1 = new JLabel(Lambo);
final JLabel McLaren1 = new JLabel(McLaren);

final JLabel Aston2 = new JLabel(Aston);
final JLabel Ferrari2 = new JLabel(Ferrari);
final JLabel Lambo2 = new JLabel(Lambo);
final JLabel McLaren2 = new JLabel(McLaren);

JButton B_Aston = new JButton (Aston);
JButton B_Ferrari = new JButton (Ferrari);
JButton B_Lambo = new JButton (Lambo);
JButton B_McLaren = new JButton (McLaren);

B_Aston.setBounds(new java.awt.Rectangle(30,30,230,75));
this.getContentPane().add(B_Aston);

B_Ferrari.setBounds(new java.awt.Rectangle(270,30,230,75));
this.getContentPane().add(B_Ferrari);

B_Lambo.setBounds(new java.awt.Rectangle(30,110,230,75));
this.getContentPane().add(B_Lambo);

B_McLaren.setBounds(new java.awt.Rectangle(270,110,230,75));
this.getContentPane().add(B_McLaren);

add(B_Aston);
add(B_Ferrari);
add(B_Lambo);
add(B_McLaren);

Aston1.setBounds(30, 250, 230, 75);
Aston1.setVisible(false);
Ferrari1.setBounds(30, 250, 230, 75);
Ferrari1.setVisible(false);
Lambo1.setBounds(30, 250, 230, 75);
Lambo1.setVisible(false);
McLaren1.setBounds(30, 250, 230, 75);
McLaren1.setVisible(false);

Aston2.setBounds(30, 350, 230, 75);
Aston2.setVisible(false);
Ferrari2.setBounds(30, 350, 230, 75);
Ferrari2.setVisible(false);
Lambo2.setBounds(30, 350, 230, 75);
Lambo2.setVisible(false);
McLaren2.setBounds(30, 350, 230, 75);
McLaren2.setVisible(false);

add(Aston1);
add(Ferrari1);
add(Lambo1);
add(McLaren1);

add(Aston2);
add(Ferrari2);
add(Lambo2);
add(McLaren2);

B_Aston.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Aston1.setVisible(true);
Ferrari1.setVisible(false);
Lambo1.setVisible(false);
McLaren1.setVisible(false);
}
});
B_Ferrari.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Aston1.setVisible(false);
Ferrari1.setVisible(true);
Lambo1.setVisible(false);
McLaren1.setVisible(false);
}
});
B_Lambo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Aston1.setVisible(false);
Ferrari1.setVisible(false);
Lambo1.setVisible(true);
McLaren1.setVisible(false);
}
});
B_McLaren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Aston1.setVisible(false);
Ferrari1.setVisible(false);
Lambo1.setVisible(false);
McLaren1.setVisible(true);

}

});

}

}

嘿,我是 Java 的新手,得到了这段代码。所以,这里的问题是,我想选择其中的两个图像并将它们绘制在按钮下方以模拟比赛。当我单击任何 Jbutton 时,该图像可见而其他 3 个不可见,但我不知道如何离开该选择并使用相同的 JButton 做出下一个选择。谁能帮我?我阅读了许多主题和许多其他页面,但似乎没有找到答案。

谢谢,对格式感到抱歉,不习惯论坛格式。

最佳答案

我认为最简单的方法是检查是否已经进行了第一个选择,然后进行第二个选择,例如

if (playerA == null) {
playerA = buttonSelection;
} else {
playerB = buttonSelection;
}

您还需要一些方法来指示用户使用什么按钮选择什么。

关于java - 如何为任何 JButton 添加两个不同的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10261454/

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