JButton
是 Java Swing 库中的一个类,用于创建可以进行交互的按钮。当用户点击按钮时,可以触发一个事件,执行指定的操作。
以下是 JButton
的一些基本特征和常用方法的介绍:
构造函数
JButton
类提供了几个构造方法,可以用来创建按钮:
JButton() // 创建一个没有文本或图标的按钮。
JButton(Icon icon) // 创建一个带有指定图标的按钮。
JButton(String text) // 创建一个带有指定文本的按钮。
JButton(String text, Icon icon) // 创建一个既有文本又有图标的按钮。
常用方法
-
void addActionListener(ActionListener l)
添加一个ActionListener
以响应按钮点击事件。 -
void setText(String text)
设置按钮上显示的文本。 -
void setIcon(Icon icon)
设置按钮上显示的默认图标。 -
void setMnemonic(int mnemonic)
设置按钮的助记符,通常与 Alt 键结合使用,可以快速访问按钮。 -
void setEnabled(boolean enabled)
启用或禁用按钮的功能。 -
void setToolTipText(String text)
设置当鼠标悬停在按钮上时显示的提示文本。
事件处理
要响应按钮点击事件,需要添加一个ActionListener
。当按钮被点击时,会触发ActionEvent
,并调用添加到按钮的所有ActionListener
的actionPerformed
方法。
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 处理事件
}
});
实例
下面是一个简单的例子,展示了如何创建一个有文本的 JButton,并为其添加事件监听器:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JButtonExample {
public static void main(String[] args) {
// 创建 JFrame 实例
JFrame frame = new JFrame("JButton Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
// 创建 JButton 实例
JButton button = new JButton("Click Me");
// 添加事件监听器
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 当按钮被点击时执行的代码
JOptionPane.showMessageDialog(frame, "Button Clicked!");
}
});
// 将按钮添加到 JFrame
frame.getContentPane().add(button);
// 设置窗口可见
frame.setVisible(true);
}
}
在这个例子中,当按钮被点击时,会弹出一个包含消息 "Button Clicked!" 的对话框。
JButton
可以自定义很多属性,如边框、颜色、字体等,以实现所需的外观和行为。Swing 提供了丰富的组件和布局管理器,可以创建复杂的图形用户界面。
以下是一些不同用途的JButton
实例,展示了如何使用按钮来实现不同的功能。
例子 1 - 带图标的按钮
import javax.swing.*;
public class IconButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Icon Button Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
// 假设这里有一个有效的图标路径
ImageIcon icon = new ImageIcon("path/to/your/icon.png");
JButton iconButton = new JButton(icon);
iconButton.setToolTipText("Click me, I'm an icon button!");
frame.getContentPane().add(iconButton);
frame.setVisible(true);
}
}
例子 2 - 带助记符的按钮
import javax.swing.*;
public class MnemonicExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Mnemonic Button Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
JButton mnemonicButton = new JButton("Save");
mnemonicButton.setMnemonic('S'); // 按下 Alt + S 即可触发点击
frame.getContentPane().add(mnemonicButton);
frame.setVisible(true);
}
}
例子 3 - 禁用的按钮
import javax.swing.*;
public class DisabledButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Disabled Button Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
JButton disabledButton = new JButton("I'm disabled!");
disabledButton.setEnabled(false); // 按钮被禁用
frame.getContentPane().add(disabledButton);
frame.setVisible(true);
}
}
例子 4 - 按钮数组
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonArrayExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Button Array Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setLayout(new GridLayout(3, 2)); // 3行2列的网格布局
JButton[] buttons = new JButton[6];
for (int i = 0; i < buttons.length; i++) {
buttons[i] = new JButton("Button " + (i + 1));
int buttonIndex = i; // 用于内部类引用的最终变量
buttons[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame,
"Button " + (buttonIndex + 1) + " clicked!");
}
});
frame.add(buttons[i]);
}
frame.setVisible(true);
}
}
每个例子都演示了JButton
不同的应用方式,从图标按钮到助记符,再到一组按钮在网格布局中的使用。通过这些例子,你可以看到JButton
在 Java Swing GUI 开发中的灵活性和功能性。