一、概述

 

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();
	}

}

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐