要将按钮图形化,只需创建一个ImageIcon对象,将图形路径赋予ImageIcon对象,然后将该对象传递给按钮即可。

此处涉及eclipse中图形的路径设置,包括(项目路径下、非项目路径下、相对路径、绝对路径),相对路径前不加/,此处相对路径是相对于eclipse中项目文件夹而言的,绝对路径为图形所在未知的具体路径。以picture1.jpg(在H:/java/workspace/study/src/picture路径下)为例:

1.若将picture文件夹置于study/src路径(非项目路径)下:

1.1 绝对路径:           H:/java/workspace/study/src/picture/picture1.jpg

1.2 相对路径:           src/picture/picture1.jpg

2.若将picture文件夹置于study路径(项目路径)下:

2.1 绝对路径不变:     H:/java/workspace/study/picture/picture1.jpg

2.2 相对路径:           picture/picture1.jpg

package test;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import static net.mindview.util.SwingConsole.*; public class PictureLabel extends JFrame{
private static Icon[] pictures;
private JButton jb,jb1 = new JButton("Disable");
private boolean mad = false; public PictureLabel()
{
pictures = new Icon[]{
new ImageIcon("src/picture/picture1.jpg"), //相对路径
new ImageIcon("H:/java/workspace/study/src/picture/picture2.jpg"), //绝对路径
new ImageIcon("src/picture/picture3.jpg"),
new ImageIcon("src/picture/picture4.jpg"),
new ImageIcon("src/picture/picture5.jpg")
};
//路径前不加/为相对路径 jb = new JButton("JButton",pictures[3]);
setLayout(new FlowLayout());
jb.addActionListener(new ActionListener(){
@Override//保证被标注的方法确实覆盖了基类的方法,否则编译会出错
public void actionPerformed(ActionEvent e)
{
if(mad)
{
jb.setIcon(pictures[3]);
mad = false;
}else
{
jb.setIcon(pictures[0]);
mad = true;
}
jb.setVerticalAlignment(JButton.TOP);
jb.setHorizontalAlignment(JButton.LEFT);
}
}); jb.setRolloverEnabled(true); //允许翻转图标
jb.setRolloverIcon(pictures[1]);
jb.setPressedIcon(pictures[2]);
jb.setDisabledIcon(pictures[4]);
jb.setToolTipText("Yow");
add(jb);
//如果 setRolloverEnabled 为 true,则当鼠标移动到按钮上时,setRolloverIcon的内容就被用到该按钮的图形上,即picture[1];
//当按下按钮时,setPressedIcon的内容被用到该按钮的图形上,即picture[2];当按钮被禁止时,setDisabledIcon的内容被应用到按钮,
//即picture[4]。

jb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(jb.isEnabled())
{
jb.setEnabled(false);
jb1.setText("Enable");
}else
{
jb.setEnabled(true);
jb1.setText("Disable");
}
}
});
add(jb1);
} public static void main(String[] args)
{
run(new PictureLabel(),500,200);
}
}

编译可得按钮具有动画效果。

注意:1、相对路径前不加/;

2、在eclipse中,程序中引入的文件的路径是相对于项目文件夹而言的;

java图形界面之图形化按钮的更多相关文章

  1. 黑马程序员:Java基础总结----GUI图形化界面

    黑马程序员:Java基础总结 GUI图形化界面   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流!   GUI(Graphical User Interface)图形化界 ...

  2. Java 图形界面开发--图文并茂建立学生管理系统

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...

  3. Java图形界面GUI

    Java图形界面GUI 设置窗体JFrame对象 package com.Aha.Best; import javax.swing.ImageIcon; import javax.swing.JFra ...

  4. Java图形界面学习---------简易登录界面

    /** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...

  5. JAVA 图形界面 JFrame容器

    一.图像化界面必须引入包 //引入图形化界面包 import java.awt.*; import javax.swing.*; 二.源代码 //窗口 import java.awt.*; impor ...

  6. Java第5次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

  7. Java第05次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

  8. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  9. java 图形界面

    1.创建一个窗口框架 /** * java 用户界面框架 * 2016/5/10 */ package org.windows; import javax.swing.*; public class ...

随机推荐

  1. module.export与export的区别?

    对于大多数node初学者而言, module.exports应该都是理解的, 但多出来一个exports获取就有些疑问了 疑问一: 既然有module.exports了为什么还要有exports? 疑 ...

  2. [Auto Testing] 工具准备:Selenium 与 ChromeDriver

    <留存> Selenium http://selenium-release.storage.googleapis.com/index.html https://www.seleniumhq ...

  3. JS-DOM Element方法和属性

    JS-DOM Element方法和属性 S-DOM Element方法和属性一,获取html元素1.getElementByID(id)通过对元素的ID访问,这是DOM一个基础的访问页面元素的方法.e ...

  4. .Net Core 发布WindowsServices

    项目代码文件夹 执行命令 dotnet publish -c Release -r win-x64

  5. 神策Loagent数据收集 windows部署的坑

    部署可以修改bin文件夹下的bat文件.. java改为javaw..无窗口运行 重新启动的时候..要保证上次运行到的日志文件要还在..或者同名文件.. 保证要比之前的文件大些..所以最好是之前的文件 ...

  6. CS231n学习笔记-图像分类笔记(下篇)

    原文地址:智能单元 K-Nearest Neighbor分类器 大家可能注意到了,为什么只用最相似的一张图片的标签来作为测试图像的标签呢?这不是很奇怪吗!是的,使用K-Nearest Neighbor ...

  7. 谈谈hadoop集群启动时进程那回事

    不多说,直接上干货! ==================> 1. 启动./start-dfs.sh的顺序是: namenode,datanode,secondarynamenode. 每一个前 ...

  8. Elasticsearch入门(一)

    索引(index) -- 存储关联数据的地方.实际上,索引只是一个逻辑命名空间(logical namespace),它指向一个或多个分片(shards). 分片(shard) 是 工作单元(work ...

  9. C语言初学

    输出控制符 输出控制符 含义 %d int 整型数 %ld long int %c char 一个字符 %f float 浮点数,整数/整数=整数,整数/小数=小数 %lf double %x %X ...

  10. Java 生成指定范围的随机数

    /** * 生成[min, max]之间的随机整数 * * @param min 最小整数 * @param max 最大整数 * @return * @author jqlin */ private ...