按钮在Swing中是非常常见的组件,用于触发特定动作。Swing中提供多种按钮,包括提交按钮、复选框、单选按钮等,这些按钮都是从AbstractButton类中继承而来的。
提交按钮
Swing中的提交按钮(JButton)由JButton对象表示。
在Swing按钮上不仅能够显示文字,还能够显示图标。
package com.xsh;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
public class JButtonTest extends JFrame {
public JButtonTest() {
URL url = JButtonTest.class.getResource("coffee.png");
Icon icon = new ImageIcon(url); //首先创建一个Icon对象
Container container = getContentPane(); //定义一个容器
setTitle("提交按钮组件"); //设置容器标题
setLayout(new GridLayout(3,2,5,5)); //设置网格布局管理器
for(int i =0; i< 5; i++) { //在循环中创建JButton图标,并添加到容器中
JButton jb = new JButton("button" + i, icon);
container.add(jb);
if(i%2 == 0) {
jb.setEnabled(false); //某些按钮不可用
}
}
JButton jb = new JButton(); //定义一个额外的JButton
jb.setMaximumSize(new Dimension(90,30)); //设置按钮与图片相同大小
jb.setIcon(icon); //为按钮设置图标
jb.setHideActionText(true);
jb.setToolTipText("图片按钮"); //设置按钮提示为文字(鼠标轻放上按钮之后的提示信息)
jb.setBorderPainted(false); //设置按钮边界不显示
jb.addActionListener(new ActionListener() { //为按钮添加点击事件监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "弹出对话框");
}
});
container.add(jb); //将最后一个按钮添加到容器中
setVisible(true); //设置容器可见行
setSize(600,300); //设置容器大小
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //窗口关闭方式
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new JButtonTest();
}
}
在本实例中,使用了两种方式来创建按钮:
- 在初始化按钮时赋予按钮图标和文字
- 首先创建一个没有定义图标和文字到按钮对象,然后使用setIcon()方法为这个按钮定制一个图标。
其中,setToolTipText()方法是为按钮设置提示文字(鼠标放到按钮上后会有提示信息出来),setBoundsPainted()方法设置按钮边界是否显示。
最后为按钮添加了时间监听器,当用户点击图标时候,弹出对话框的功能。
其中,setMaximumSize()方法设置按钮的大小与图标的大小一致,该方法需要的参数类型为Dimension类对象,这样看上去此图片就如同按钮一样摆放在窗体中,同时 也可以使用setEnable()方法设置按钮是否可用。