在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图片按钮的大小怎么设置?
按照方法:
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");
最终效果:
java图片按钮的大小的设置就是以上这些步骤,在实际工作中,大家可以参考这些进行操作。
最后大家如果想要了解更多java入门知识,敬请关注奇Q工具网。
推荐阅读: