要实现按钮的监听器中的随机面板颜色仅起作用一次的功能,可以采用以下解决方法:
以下是一个Java代码示例:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class RandomColorPanel extends JFrame {
private JPanel panel;
private JButton button;
private boolean colorChanged;
public RandomColorPanel() {
panel = new JPanel();
button = new JButton("Change Color");
colorChanged = false;
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!colorChanged) {
Color randomColor = getRandomColor();
panel.setBackground(randomColor);
colorChanged = true;
}
}
});
panel.setPreferredSize(new Dimension(200, 200));
panel.setBackground(Color.WHITE);
panel.setLayout(new FlowLayout());
add(panel, BorderLayout.CENTER);
add(button, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private Color getRandomColor() {
int r = (int) (Math.random() * 256);
int g = (int) (Math.random() * 256);
int b = (int) (Math.random() * 256);
return new Color(r, g, b);
}
public static void main(String[] args) {
new RandomColorPanel();
}
}
该代码创建了一个包含一个面板和一个按钮的窗口。点击按钮后,如果颜色未更改过,则随机生成一个颜色,并将其设置为面板的背景颜色。在第一次按钮点击后,再次点击按钮将不会更改面板的颜色。
下一篇:按钮的交换颜色函数中的参数问题