要将按钮图形化,只需创建一个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. 利用nginx实现负载均衡

    1.安装nginx和tomcat 我这里是使用docker安装的.安装流程可参照 dockerfile 这里安装了两个tomcat,端口分别是42000和42001.第二个tomcat的首页随便加了些 ...

  2. 3.修改更新源sources.list,提高软件下载安装速度(2017.04.05)

    2017年4月5日再次更新源 1.切换到root用户(如果已经是root用户就直接看第二步) dnt@HackerKali:~$ su 密码: 2.用文本编辑器打开sources.list,手动添加下 ...

  3. python实战——网络爬虫

    学习网络爬虫的目的: 1,可以私人定制一个搜索引擎,可以深层次的了解搜索引擎的工作原理. 2,大数据时代,要进行数据分析,首先要有数据源,学习爬虫,可以让我们获取更多的数据. 3,从业人员可以可好的利 ...

  4. AngularJS入门之动画

    AngularJS中ngAnimate模块支持动画效果,但是ngAnimate模块并未包含在AngularJS核心库中,因此需要使用ngAnimate需要在定义Module时声明对其的引用. Angu ...

  5. Opserver 初探二《exceptions配置》

    上一节主要介绍Opserver的搭建以及redis.sqlserver监控的配置,本节主要介绍异常日志的记录和监控.要实现异常日志的监控我们需要在项目中引入StackExchange.Exceptio ...

  6. Java之集合(二十二)PriorityBlockingQueue

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7510799.html 1.前言 本章介绍阻塞队列PriorityBlockingQueue.这是一个无界有序的阻 ...

  7. springMVC执行流程及原理

    spring的MVC执行原理 1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作. 2.DispatcherSer ...

  8. SpringMVC+AJAX+JSON

    在做一个ajax发送json到springmvc的控制层,控制层的对象中有一个List集合,ajax调用总是报415错误.发现了一个一直没有注意到的问题,借机记录一下. (细节部分都忽略了,在最后的d ...

  9. 【转】Session 过期问题处理

    原文:http://www.cnblogs.com/powerfan/archive/2011/03/29/1998691.html 在Asp.net应用中,很多人会遇到Session过期设置有冲突. ...

  10. 《Mysql技术内幕,Innodb存储引擎》——索引与算法

    B+树 B+树中,所有记录节点都按照键值的大小顺序放在同一层叶子节点,各个叶子节点指针进行连接. 图中指针是单向的,但是书上的图是双向的,而且旋转应该也是双向才能完成) B+树插入处理 Leaf Pa ...