java界面如何添加图片?java图片按钮的大小怎么设置?

在java部分需要用到图形界面编程的项目中,我们常常需要添加图片,但是这对新手java人员来说还是比较难的,那java界面如何添加图片?下面来我们就来给大家讲解一下java界面添加图片的方法。

1.使用JLabel组件来显示图片

JLabel 的构造方法:

JLabel()
JLabel(String text)
JLabel(String text, int horizontalAlignment)
JLabel(Icon image)
JLabel(Icon image, int horizontalAlignment)
JLabel(String text, Icon image, int horizontalAlignment)
/**
* text:显示的文本
* image:显示的图片
* horizontalAlignment: 标签内容(在标签内)的水平对其方式(竖直方向默认居中, 可通过方法设置)
*
*/

使用Icon实例获取图片资源,一般用ImageIcon来穿建图片对象。

ImageIcon icon = new ImageIcon("src/main/resources/title.jpeg");

其他实例创建的方法:

// 方法一: 通过 java.awt.Toolkit 工具类来读取本地、网络 或 内存中 的 图片(支持 GIF、JPEG 或 PNG)
Image image = Toolkit.getDefaultToolkit()
    .getImage(String filename);
Image image = Toolkit.getDefaultToolkit()
    .getImage(URL url);
Image image = Toolkit.getDefaultToolkit()
    .createImage(byte[] imageData);
// 方法二: 通过 javax.imageio.ImageIO 工具类读取本地、网络 或 内存中 的 图片(BufferedImage 继承自 Image)
BufferedImage bufImage = ImageIO.read(File input);
BufferedImage bufImage = ImageIO.read(URL input);
BufferedImage bufImage = ImageIO.read(InputStream input);
/*
* PS_01: 图片宽高: BufferedImage 可以通过 bufImage.getWidth() 和 bufImage.getHeight() 方法直接获取图片的宽高;
* Image 获取宽高需要另外传入一个 ImageObserver 参数。
*
* PS_02: 图片裁剪: BufferedImage 通过 bufImage.getSubimage(int x, int y, int w, int h) 方法可以截取图片的
* 任意一部分,返回一个新的 BufferedImage 实例。
*
* PS_03: 图片缩放: Image 通过 image.getScaledInstance(int width, int height, int hints) 方法可以对图片进行
* 缩放,返回新的一个 Image 实例。
*/

设置图片大小:

icon.setImage(icon.getImage().getScaledInstance(width,height,Image.SCALE_DEFAULT));

图像部分代码:

JPanel titlePanel = new JPanel();
ImageIcon icon = new ImageIcon("src/main/resources/title.jpeg");
JLabel titleLabel = new JLabel();
titlePanel.setBounds(0, 0, 800, 500);
icon.setImage(icon.getImage()
    .getScaledInstance(titlePanel.getWidth(), titlePanel.getHeight(), Image.SCALE_DEFAULT)); //设置图像大小
titleLabel.setIcon(icon);
titlePanel.add(titleLabel);
this.add(titlePanel, BorderLayout.NORTH);

效果图:

java界面如何添加图片?java图片按钮的大小怎么设置?.png

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个我改咋办?

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

public static JButton changeIconSize(JButton button, String url, int width, int height, String tip)
{
    button.setBounds(0, 0, width, height);
    ImageIcon buttonImg = new ImageIcon(url);
    //改变图片的大小
    Image temp = buttonImg.getImage()
        .getScaledInstance(button.getWidth(), button.getHeight(), buttonImg.getImage()
            .SCALE_DEFAULT);
    button = new JButton(new ImageIcon(temp));
    button.setToolTipText(tip); //提示
    return button;
}

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

调用如下:

create=new JButton();
create=JF_Notpad.changeIconSize(create, "img/notpad/news.png", BUTTONWIDTH, 
BUTTONWIDTH, "New");

最终效果:

1.png

java图片按钮的大小的设置就是以上这些步骤,在实际工作中,大家可以参考这些进行操作。

最后大家如果想要了解更多java入门知识,敬请关注奇Q工具网。

推荐阅读:

java开发的游戏有哪些?java知名游戏分享

java培训班学费一般多少?跟培训班学有好处吗?

intellij idea使用什么gui? idea快速gui界面教程