要将按钮图形化,只需创建一个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. svn update 产生Node remains in conflict的问题

    输入:sudo svn revert --depth=infinity frontend/web/js/workplace/organization.js 最后在执行 svn  up  就ok了

  2. [bug] JS sort 函数在 ios 中无效

    首先,请原谅我做一次标题党: 但我觉得从发现问题到最后解决问题的过程还是蛮有意思的,特此记录一下: 背景 近两天开发的航班延误宝是内嵌在客户端(android.ios)webview 中的 H5 页面 ...

  3. PHP之旅4 php 超全局变量

    预定义数组: 自动全局变量---超全局数组 1.包含了来自web服务器,客户端,运行环境和用户输入的数据 2.这些数组比较特别 3.全局范围内自动生效,都可以直接使用这些数组 4.用户不能自定义这些数 ...

  4. 切割数组 - 将一个数组拆分成多个长度为n的数组

    有时候接口返回的数据很长,而前端显示需要分组显示这些数据,这个时候就需要将数组拆分: datas = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; var arrLen ...

  5. Python3模块: hashlib

    简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模块,简单说 ...

  6. 【GDOI2015】 推箱子 状态压缩+bfs

    请注意$8$是一个美妙的数字 考虑到$8\times 8=64$,而一个unsigned long long是$64$位的,所以考虑用一个$01$状态存储箱子.考虑到箱子能转动,那么四种情况都存一下就 ...

  7. selenium+java iframe定位

      关于 driver.switchTo().frame(参数).这中间的参数表达有以下几种方式. driver.switchTo().frame(0):用<iframe>标签的位置数量来 ...

  8. (转)AIX下镜像制作与取消,更换硬盘问题

    AIX下镜像制作与取消,更换硬盘问题 ROOTVG做镜像问题: 下面命令全部在AIX5.4上运行通过 # lspv hdisk0      000a1ddc7f36a2f0      rootvg   ...

  9. 再学Java 之 解决No enclosing instance of type * is accessible

    深夜,临睡前写了个小程序,出了点小问题 public class Test_drive { public static void main(String[] args){ A a = new A(); ...

  10. java_sql_Batch_批处理

    java  JDBC 进行sql语句的批处理的两种方法示例代码.表是oracle数据库里的dept表,为了看清逻辑关系,把异常都throws 出去. package com.ayang.jdbc; i ...