Java Swing : Models and Button color changes

标签 java swing model jbutton

我对模型在 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/

相关文章:

Java JButton 鼠标悬停颜色

java - 如何为多个 JMenuItem 创建 ActionListener?

c# - MVVM:精简 ViewModel 和丰富模型

java - 在 Java 中查找搭配模式

java - 用于匹配模式和分组正确元素的正则表达式

java - 如何在 JFrame 中对齐组合面板?

ruby-on-rails - 设置设备管理员角色

javascript - 如何在 SAPUI5 上检索字段值

java - 我可以使用使用相同 "entity class"的 JPA 写入不同的 jetty 数据库吗

java - 是否有用于提取 MP4 元数据的 Java API?