Java swing 单选按钮,带有不断变化的、可点击的图标

标签 java swing icons actionlistener

设计一个问题,可以通过radioButtons来选择答案的范围。 为了显示更大的可点击区域(该应用程序用于触摸屏),我将 icon_1 放在单选按钮上。

每次鼠标点击都可以将显示的图标更改为 icon_2,反之亦然。 对不起,正在使用

jRadioButtonActionPerformed 
ImageIcon o_ButtonIcon = new ImageIcon ("....") 
jRadioButton.setIcon(Icon m_ButtonIcon).

我没有看到任何变化的、可点击的图像。 你能帮帮我吗?

最佳答案

似乎工作正常。

发布 SSCCE以显示具体问题。

enter image description here

enter image description here

这里是例子(我不推荐 getScaledInstance(..) 只是用它作为快速示例)

import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;

public class Test {

    private ImageIcon ii1;
    private ImageIcon ii2;
    private JRadioButton jrb = new JRadioButton("Click me :)");
    private JFrame frame = new JFrame();

    public Test() {
        try {
            ii1 = new ImageIcon(ImageIO.read(new URL("http://cdn.macrumors.com/article/2010/09/03/145454-itunes_10_icon.jpg")).getScaledInstance(48, 48, Image.SCALE_SMOOTH));
            ii2 = new ImageIcon(ImageIO.read(new URL("http://www.quarktet.com/Icon-small.jpg")).getScaledInstance(48, 48, Image.SCALE_SMOOTH));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        initComponents();
    }

    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Test();
            }
        });
    }

    private void initComponents() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        jrb.setIcon(ii1);
        jrb.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                if (jrb.getIcon() == ii1) {
                    jrb.setIcon(ii2);
                } else {
                    jrb.setIcon(ii1);
                }
            }
        });

        frame.add(jrb);
        frame.pack();
        frame.setVisible(true);
    }
}

关于Java swing 单选按钮,带有不断变化的、可点击的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13614750/

相关文章:

java - java中如何将一个字符串数组的元素用作另一个字符串数组的变量?

java - (仅)下载 OpenJDK 并且不安装它

android - 如何为小米手机提供单独的图标?

java - 如何在 eclipse-rcp 应用程序的公共(public)导航器 View 中更改文件夹图标(例如源文件夹)?

image - .ico 文件的 TPicture 宽度和高度报告不正确 (Delphi 7)

java - 当我尝试将对象添加到 ArrayList 时,它添加了哈希码,不知道如何解决。初学者

java - 在 Spring 上重新注册单例 bean

java - 如何失去textField onClick的焦点

java - 如何为我的井字游戏添加计分器