一、概述
JButton组件是最简单的按钮组件,在按下和释放2个状态之间进行切换,可以通过捕捉按下并释放的动作执行一些操作,从而完成和用户之间的交互。
二、构造函数
JButton();//创建不带有设置文本或图标的按钮。
JButton(Icon icon);//创建一个带图标的按钮。
JButton(String text);//创建一个带文本的按钮。
JButton(String text, Icon icon);//创建一个带初始文本和图标的按钮。
三、常用方法
// 设置按钮的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)// 设置按钮是否可用
void setEnabled(boolean enable)setIcon(Icon defaultIcon) //注意了这是改的默认图标。三态中的默认,即鼠标未在其上的时候。setPressedIcon(Icon pressedIcon) //按下时的图标。setRolloverIcon(Icon rolloverIcon) //鼠标经过时的图标。// 是否绘制边框(设置不绘制边框,再结合上面三个设置按钮状态图片的方法,可实现自定义按钮)
void setBorderPainted(boolean b);setContentAreaFilled(boolean b) //是否填充,如果你的自定义图片不是矩形或存在空白边距,可以设为 false 使按钮看起来透明。setFocusPainted(boolean b) //是否绘制焦点(例如浅色虚线框或者加粗的边框表明按钮当前有焦点)。setMargin(Insets m) //改变边距,如果 borderPainted 和 contentAreaFilled 都设成了 false,建议把边距都调为 0:new Insets(0, 0, 0, 0)。setRolloverSelectedIcon(Icon rolloverSelectedIcon) //鼠标经过时且被选中状态的图标。setSelectedIcon(Icon selectedIcon) //选中时的图标。setDisabledIcon(Icon disabledIcon) //禁用时显示的图标。例如可以换一张灰度图片。setDisabledSelectedIcon(Icon disabledSelectedIcon) //禁用且被选中状态的图标。
四、案例
package com.zking.ui;import java.awt.Color;
import java.awt.Font;
import java.awt.Image;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;public class MyJButtonDemo extends JFrame {private JPanel jpanel = new JPanel();// 中间组件private JButton jba = new JButton("普通按钮");private JButton jbb = new JButton("带颜色按钮");private JButton jbc = new JButton("不可编辑按钮");private JButton jbd = new JButton("按钮的 文本、字体 和 字体颜色");private JButton jbe = new JButton();private JButton jbf = new JButton("边框");private JButton jbg = new JButton("填充");private JButton jbh = new JButton("焦点");private JButton jbi = new JButton("按钮",new ImageIcon(new ImageIcon("images\\3.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));public MyJButtonDemo() {this.setTitle("按钮演示");this.setSize(400, 500);this.setDefaultCloseOperation(2);this.setLocationRelativeTo(null);// 1.普通按钮jpanel.add(jba);// 2.带颜色的按钮jbb.setBackground(Color.red);jpanel.add(jbb);// 3.不可编辑按钮jbc.setEnabled(false);jpanel.add(jbc);// 4.设置按钮的 文本、字体 和 字体颜色// setText(String text)// setFont(Font font)// setForeground(Color fg)jbd.setText("按钮的文本、字体和字体颜色");jbd.setFont(new Font("宋体", Font.BOLD, 20));jbd.setForeground(Color.red);jpanel.add(jbd);// 5// setIcon(Icon defaultIcon) //注意了这是改的默认图标。三态中的默认,即鼠标未在其上的时候。// setPressedIcon(Icon pressedIcon) //按下时的图标。// setRolloverIcon(Icon rolloverIcon) //鼠标经过时的图标。jbe.setIcon(new ImageIcon(new ImageIcon("images\\3.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));jbe.setPressedIcon(new ImageIcon(new ImageIcon("images\\2.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));jbe.setRolloverIcon(new ImageIcon(new ImageIcon("images\\1.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));jpanel.add(jbe);// 是否绘制边框(设置不绘制边框,再结合上面三个设置按钮状态图片的方法,可实现自定义按钮)// void setBorderPainted(boolean b);jbf.setBorderPainted(false);jpanel.add(jbf);// setContentAreaFilled(boolean b) //是否填充,如果你的自定义图片不是矩形或存在空白边距,可以设为 false// 使按钮看起来透明。jbg.setContentAreaFilled(true);jpanel.add(jbg);// setFocusPainted(boolean b) //是否绘制焦点(例如浅色虚线框或者加粗的边框表明按钮当前有焦点)。jbh.setFocusPainted(true);jpanel.add(jbh);jbi.setHorizontalTextPosition(SwingConstants.CENTER); // 水平方向文本在图片中心jbi.setVerticalTextPosition(SwingConstants.BOTTOM);// 垂直方向文本在图片下方jpanel.add(jbi);this.getContentPane().add(jpanel);this.setVisible(true);}public static void main(String[] args) {new MyJButtonDemo();}}