java-如何将图像添加到JButton

我正在尝试将图像添加到JButton,但不确定我丢失了什么。 当我运行以下代码时,该按钮看起来与我创建时没有任何图像属性的按钮完全相同。 Water.bmp在我的项目文件夹的根目录中。

ImageIcon water = new ImageIcon("water.bmp");

JButton button = new JButton(water);

frame.add(button);

10个解决方案

70 votes

我认为您的问题出在图像的位置。 您应将其放置在源中,然后像这样使用它:

JButton button = new JButton();

try {

Image img = ImageIO.read(getClass().getResource("resources/water.bmp"));

button.setIcon(new ImageIcon(img));

} catch (Exception ex) {

System.out.println(ex);

}

在此示例中,假定映像位于src / resources /文件夹中。

Rogach answered 2020-07-27T06:18:20Z

15 votes

@罗加奇

并且您可能想添加:

// to remote the spacing between the image and button's borders

button.setMargin(new Insets(0, 0, 0, 0));

// to add a different background

button.setBackground( ... );

// to remove the border

button.setBorder(null);

ungalcrys answered 2020-07-27T06:18:44Z

6 votes

看起来是位置问题,因为该代码非常适合添加图标。

由于我不知道您的文件夹结构,因此建议添加一个简单的检查:

File imageCheck = new File("water.bmp");

if(imageCheck.exists())

System.out.println("Image file found!")

else

System.out.println("Image file not found!");

这样,如果您弄错了路径名,它将告诉您而不显示任何内容。 如果文件不存在,应该抛出异常。

donnyton answered 2020-07-27T06:19:13Z

2 votes

我只做了一件事,它为我工作..检查您的代码是否在这种方法..

setResizable(false);

如果它是假的,则将其设置为真,并且可以正常工作..希望对您有所帮助。

Dan answered 2020-07-27T06:19:38Z

2 votes

public class ImageButton extends JButton {

protected ImageButton(){

}

@Override

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

Image img = Toolkit.getDefaultToolkit().getImage("water.bmp");

g2.drawImage(img, 45, 35, this);

g2.finalize();

}

}

或使用此代码

class MyButton extends JButton {

Image image;

ImageObserver imageObserver;

MyButtonl(String filename) {

super();

ImageIcon icon = new ImageIcon(filename);

image = icon.getImage();

imageObserver = icon.getImageObserver();

}

public void paint( Graphics g ) {

super.paint( g );

g.drawImage(image, 0 , 0 , getWidth() , getHeight() , imageObserver);

}

}

KFC answered 2020-07-27T06:19:57Z

2 votes

您将图像放在资源文件夹中,并使用以下代码:

JButton btn = new JButton("");

btn.setIcon(new ImageIcon(Class.class.getResource("/resources/img.png")));

ParisaN answered 2020-07-27T06:20:17Z

1 votes

//paste required image on C disk

JButton button = new JButton(new ImageIcon("C:water.bmp");

JavaJitendra answered 2020-07-27T06:20:33Z

1 votes

该代码对我有用:

BufferedImage image = null;

try {

URL file = getClass().getResource("water.bmp");

image = ImageIO.read(file);

} catch (IOException ioex) {

System.err.println("load error: " + ioex.getMessage());

}

ImageIcon icon = new ImageIcon(image);

JButton quitButton = new JButton(icon);

CamelTM answered 2020-07-27T06:20:53Z

1 votes

buttonB.setIcon(new ImageIcon(this.getClass().getResource("imagename")));

HeavenlySwirl answered 2020-07-27T06:21:08Z

1 votes

例如,如果您在文件夹res/image.png中有图像,则可以编写:

try

{

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

InputStream input = classLoader.getResourceAsStream("image.png");

// URL input = classLoader.getResource("image.png"); //

BufferedImage image = ImageIO.read(input);

button.setIcon(new ImageIcon(image));

}

catch(IOException e)

{

e.printStackTrace();

}

一行:

try

{

button.setIcon(new ImageIcon(ImageIO.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("image.png"))));

}

catch(IOException e)

{

e.printStackTrace();

}

如果图像大于按钮,则不会显示。

Oxygenium answered 2020-07-27T06:21:38Z

java jbutton添加图片代码_java-如何将图像添加到JButton相关推荐

  1. java下载网站图片代码_java下载网上的图片到本地

    public class TestImgJsoup { /** * @param urlPath * 图片路径 * @throws Exception */ public void getImages ...

  2. java 添加图片背景_java添加背景图片

    总结:我们通常实现添加背景图片很容易,但是再添加按钮组件就会覆盖图片.原因是: 有先后啊.setlayout();与布局有很大关系 请调试代码的时候,仔细揣摩.我晕了 还可以添加文本框,密码框 fra ...

  3. java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 视频来自:优酷 在java中添加图片做动画效果,怎么一闪一闪的运动啊?怎样才能让它不闪的连续运动呢? 下面是代码,代码项目project里有两个类,一个是 ...

  4. java编写添加背景音乐代码_java代码中简单添加背景音乐(亲测有效)

    在做java贪吃蛇游戏课设时,想添加背景音乐,用了以下很简单的步骤即可完成,亲测有效哦! 调用方法: new Thread(()->{while(true) {Data.playMusic(); ...

  5. java图形界面设计代码_Java图形界面设计

    一.总述 Java的图形用户界面由各种组件(component)构成,它们主要位于java.awt包与javax.swing包中.Swing与AWT最大的不同是,Swing在实现时,不包含任何本地代码 ...

  6. 利用ffmpeg实现添加图片水印和文字水印,添加多个水印。代码和命令实现及中文水印乱码

    ffmpeg中文水印乱码两种原因 1.字符编码格式原因,中文必须是utf8编码格式的(我遇到的问题,在vs2013上写的中文,已做编码格式转码,放到centos7.2上编译运行也会出现中文乱码的问题, ...

  7. java记事本写玫瑰花代码_Java记事本源代码(完整)

    <Java记事本源代码(完整)>由会员分享,可在线阅读,更多相关<Java记事本源代码(完整)(13页珍藏版)>请在人人文库网上搜索. 1.* 作品:记事本* 作者:* 功能: ...

  8. java主窗体设计代码_java窗体设计+GUI经典代码全放送

    [实例简介] java窗体设计经典代码,手把手叫你如何设计java窗体,编写应用程序. [实例截图] [核心代码] 57641e3b-d82c-4f28-bb29-35f951c1158d └── j ...

  9. Java怎么让图片在窗体_在窗口添加背景图片-java怎么设置窗体的背景图片 – 手机爱问...

    2018-04-07 背景图片怎么设置? 背景图片代码:更换整体页面背景的源代码:body{b (大背景图片地址) repeatscroll!important;}更换页面题图logo图片的源代码:. ...

最新文章

  1. 史上最全软件测试自学完整路线,走过路过千万不要错过
  2. golang中的权限
  3. SVN Unable to connect to a repository at URL问题解决
  4. csgo机器人扔道具_雕友投稿 | 我裂开了, CSGO终于更新了
  5. boost::graph模块实现资源受限最短路径算法的示例使用
  6. 实验4-2-3 pta验证“哥德巴赫猜想” (20分)
  7. TypeScript学习笔记-声明合并
  8. OpenShift 4 - 用Compliance Operator对OpenShift进行安全合规扫描
  9. Java break语句,标签
  10. bat写的自动部署脚本
  11. 个人学习进度(第十四周)
  12. 如果直接放到pst,exchange上就没有了
  13. snmpwalk 安装与使用详解
  14. 视频截取图片帧工具(可免费使用)
  15. 张一鸣:我的大学四年收获及工作感悟
  16. 实验3:搜索算法求解8数码问题
  17. linux AR8151网卡驱动下载,centos 6.2 atheros ar8151网卡驱动安装
  18. charles配置代理证书
  19. 香港十大炒黄金交易公司排名2020版一览
  20. jsp自定义标签的问题Unable to load tag handler class

热门文章

  1. MQ消息队列消息过期失效
  2. C++单例模式 : 懒汉模式 与 饿汉模式
  3. Spring Boot Maven聚合工程 打包部署教程
  4. [转] SONY图像传感器列表
  5. 传说中的死机短信,不知是真是假
  6. 期末学生HTML个人网页作业作品~蓝色的异清轩响应式个人博客模板源码~bootstrap响应式博客网站模板html
  7. js实现web网页版台球游戏
  8. 谷歌竞价账户可以探测到全球市场吗?
  9. 【PTHREAD】线程退出与取消
  10. DCDC12V升压22V~24V 200W大功率音箱电源芯片 SL4010