gpt4 book ai didi

Java Swing : Models and Button color changes

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

我对模型在 java swing 中到底应该做什么感到非常困惑。目前我基本上正在尝试为 JButton 创建一个模型来检测它是否 isPressed();我的模型的基本目标是做这样的事情:

if(myButton.isPressed() ) {
myButton.setBackground(Color.RED);
}
else{//when any other button is pressed?
myButton.setBackground(Color.WHITE);
}

目前我的代码是这样的:

    numberButton = new JButton("Num");
numberButton.setBounds(20,40,80,30);
numberButton.addChangeListener(new ChangeListener() {
public void stateChanged (ChangeEvent e){
if (model.isPressed() ){
doColorChange(model);
}
}
});

我知道这是完全错误的,但我不知道在哪里,而且我还没有找到真正解释我做错了什么或为什么我需要一个模型的教程。

请帮我恢复理智!非常感谢!

最佳答案

在按钮组中使用单选按钮。

RedAndWhite

import java.awt.image.BufferedImage;
import java.awt.*;
import javax.swing.*;

import java.net.URL;
import javax.imageio.ImageIO;

class RedAndWhite {

public static Image getColoredImage(Color color, int size) {
BufferedImage bi = new BufferedImage(
size,
size,
BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics();
g.setColor(color);
g.fillRect(0,0,size,size);

g.dispose();
return bi;
}

public static void main(String[] args) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Image red = getColoredImage(Color.RED, 32);
Image white = getColoredImage(Color.WHITE, 32);
JPanel p = new JPanel(new GridLayout(1,0,5,5));

ButtonGroup bg = new ButtonGroup();
for (int ii=0; ii<6; ii++) {
JRadioButton b = new JRadioButton();
b.setSelectedIcon(new ImageIcon(red));
b.setIcon(new ImageIcon(white));
b.setContentAreaFilled(true);
bg.add(b);
p.add(b);
}

JOptionPane.showMessageDialog(null, p);
}
});
}
}

关于Java Swing : Models and Button color changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203232/

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