《Java编程思想第四版》学习笔记45--关于图标
  2BeoiZ3vpCmu 2023年12月07日 21 0
//: Faces.java
// Icon behavior in JButtons
package c13.swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Faces extends JPanel {
    static Icon[] faces = {
            new ImageIcon("face0.gif"),
            new ImageIcon("face1.gif"),
            new ImageIcon("face2.gif"),
            new ImageIcon("face3.gif"),
            new ImageIcon("face4.gif"),
    };
    JButton
            jb = new JButton("JButton", faces[3]),
            jb2 = new JButton("Disable");
    boolean mad = false;
    public Faces() {
        jb.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e){
                if(mad) {
                    jb.setIcon(faces[3]);
                    mad = false;
                } else {
                    jb.setIcon(faces[0]);
                    mad = true;
                }
                jb.setVerticalAlignment(JButton.TOP);
                jb.setHorizontalAlignment(JButton.LEFT);
            }
        });
        jb.setRolloverEnabled(true);
        jb.setRolloverIcon(faces[1]);
        jb.setPressedIcon(faces[2]);
        jb.setDisabledIcon(faces[4]);
        jb.setToolTipText("Yow!");
        add(jb);
        jb2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e){
                if(jb.isEnabled()) {
                    jb.setEnabled(false);
                    jb2.setText("Enable");
                } else {
                    jb.setEnabled(true);
                    jb2.setText("Disable");
                }
            }
        });
        add(jb2);
    }
    public static void main(String args[]) {
        Show.inFrame(new Faces(), 300, 200);
    }
} ///:~

                                                                                                                                                                 P.473

以上例程中代码:

static Icon[] faces = {
            new ImageIcon("face0.gif"),
            new ImageIcon("face1.gif"),
            new ImageIcon("face2.gif"),
            new ImageIcon("face3.gif"),
            new ImageIcon("face4.gif"),
    };

改成以下形式才能加载图片:

static Icon[] faces;

    static {
        try {
            faces = new Icon[]{
                    new ImageIcon(ImageIO.read(new File("src/face0.gif"))),
                    new ImageIcon(ImageIO.read(new File("src/face1.gif"))),
                    new ImageIcon(ImageIO.read(new File("src/face2.gif"))),
                    new ImageIcon(ImageIO.read(new File("src/face3.gif"))),
                    new ImageIcon(ImageIO.read(new File("src/face4.gif"))),
            };
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

不知道还有没有其他方法。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月07日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   53   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   107   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
2BeoiZ3vpCmu