zoukankan      html  css  js  c++  java
  • [转]java中带图片按钮的大小设置

    在java部分需要用到图形界面编程的项目中,经常会使用图片设置对按钮进行美化,但是使用时会出现一个很麻烦的问题,那就是按钮的大小默认按照图片的大小来显示,这大大降低了界面的美观程度;

    按照方法:

    JButton jb1 = new JButton();  
    jb1.setBounds(0, 0, 25, 20);  
    ImageIcon ii = new ImageIcon("images/xxx.png");  
    jb1.setIcon(ii); 

    但是,在修改完按钮的大小后,按钮还是没有改变,这是因为我是对图片没有进行缩放

    所以,修改为以下:

    JButton jb1 = new JButton();  
    jb1.setBounds(0, 0, 25, 20);  
    ImageIcon ii = new ImageIcon("images/xxx.png");  
    //根据按钮大小改变图片大小  
    Image temp = ii.getImage().getScaledInstance(jb1.getWidth(), jb1.getHeight(), ii.getImage().SCALE_DEFAULT);  
    ii = new ImageIcon(temp);  
    jb1.setIcon(ii);  
    jb1.setToolTipText("image");

    修改为以上方法后,确实可以了,但是我上面有6个按钮需要修该,难不成要一个一个该?那要是有100个我改咋办?

    这是我们就需要对以上的模块进行封装;(我的类是:GUITools )

    package cn.cetc.util;//可修改为自定的包名
    
    import java.awt.Dimension;
    import java.awt.Image;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.net.URL;
    
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    
    public class GUITools {
        //将Icon图标按照JButton对象的边界大小进行缩放,并返回JButton对象
        public static JButton getButtonWithScaledIcon(URL resource,int width,int height,String tip){
            JButton button=new JButton();        
            button.setBounds(0,0,width,height);
            button.setPreferredSize(new Dimension(width,height));      
            ImageIcon buttonImgSrc=new ImageIcon(resource);//载入原始大小的图像
            Image temp=buttonImgSrc.getImage().getScaledInstance(button.getWidth(), button.getHeight(), Image.SCALE_DEFAULT);//改变图像的大小
            ImageIcon scaledImageIcon = new ImageIcon(temp);
            button.setIcon(scaledImageIcon);//大多数组件的setIcon方法只接受ImageIcon类型的参数,并且Java组件类只有这一个方法用来设置图片。JFrame组件有方法setIconImage( Image image)接受Image类型的参数   
            button.setToolTipText(tip);//JButton的提示信息
            button.setBorderPainted(false);
            button.setContentAreaFilled(false);//初始化时不绘制内容区域,使显示为透明的按钮
            // 效果增强代码:用于处理鼠标进入或离开工具条按钮时的效果
            button.addMouseListener(new MouseAdapter() {
                public void mouseEntered(MouseEvent e) {
                    if (e.getSource() instanceof JButton) {
                        ((JButton) e.getSource()).setContentAreaFilled(true);
                    }
                }
    
                public void mouseExited(MouseEvent e) {
                    if (e.getSource() instanceof JButton) {
                        ((JButton) e.getSource()).setContentAreaFilled(false);//设置 contentareafilled 属性。如果该属性为 true,则按钮将绘制内容区域。如果希望有一个透明的按钮,比如只是一个图标的按钮,那么应该将此属性设置为 false。不要调用 setopaque(false)。contentareafilled 属性的默认值为 true。
                    }
                }
            });
                  
            return button;
        }
    }

    因为这里我的六个按钮是要同样大小的,我就将其大小设为静态常量,通过此来改变按钮的大小

    调用如下:

            //创建登录按钮
            URL resource = this.getClass().getResource("/img/login.png");        
            final JButton loginButton = GUITools.getButtonWithScaledIcon(resource, 64, 64, "登录");

    最终效果:

    当然大家可以将之前的模块放在你自己工具类中,这样方便以后调用。

    原文链接:java中带图片按钮的大小设置

  • 相关阅读:
    显示器的分类和主要性能指标
    关闭Win 10 自动更新功能
    MySQL下载安装教程
    经济学十大原理
    西方经济学概述(经济学原理 1 )
    工作表基本操作
    输入和编辑工作表
    因特网概述
    摩尔定律(Moore's Law)
    C 语言编程机制
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/12501079.html
Copyright © 2011-2022 走看看