1.按钮和按钮组
- 按钮(
JButton
)用于触发某些操作。 - 按钮组(
ButtonGroup
)用于将多个单选按钮(JRadioButton
)分组,确保在同一组中的按钮只能选中一个。
JButton button = new JButton("Click Me");
//按钮组
ButtonGroup group = new ButtonGroup();
JRadioButton radio1 = new JRadioButton("Option 1");
JRadioButton radio2 = new JRadioButton("Option 2");
group.add(radio1);
group.add(radio2);
2.图标
可以在JLable或者任何从AbstractButton(包括JButton,JCheckBox,JRadioButton以及几种不同JMenuItem)继承的组件中使用Icon。
JButton button = new JButton(new ImageIcon("icon.png"));
3.工具提示
工具提示(JToolTip
)是当用户将鼠标悬停在组件上时显示的提示信息,通常用于解释组件的功能。
JButton button = new JButton("Hover Over Me");
button.setToolTipText("This is a tooltip");
4.文本域
文本域(JTextArea
)用于显示多行文本,可以进行编辑或显示长文本。
JTextArea textArea = new JTextArea("Initial Text");
5.边框
边框(Border
)用于为组件添加边界线或外观装饰,增强视觉效果。
JButton button = new JButton("Styled Button");
button.setBorder(BorderFactory.createLineBorder(Color.BLACK));
6.复选框
复选框(JCheckBox
)允许用户选择或取消选择一个选项,可以用于多选操作。
JCheckBox checkBox = new JCheckBox("Check me");
7.单选按钮
单选按钮(JRadioButton
)用于在多个选项中选择一个选项,通常与按钮组一起使用,以确保一次只能选择一个选项。
JRadioButton radioButton = new JRadioButton("Select me");
8.组合框
组合框(JComboBox
)提供一个下拉列表,允许用户从中选择一个选项或输入自定义选项。
JComboBox<String> comboBox = new JComboBox<>(new String[] {"Option 1", "Option 2"});
9.列表框
列表框(JList
)显示一个可滚动的项目列表,用户可以从中选择一个或多个项目。
JList<String> list = new JList<>(new String[] {"Item 1", "Item 2"});
10.页签面板
页签面板(JTabbedPane
)允许在一个面板中切换多个标签页,每个标签页显示不同的内容。
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Tab 1", new JPanel());
11.消息框
消息框(JOptionPane
)用于显示简单的对话框,向用户展示信息或请求用户输入。
JOptionPane.showMessageDialog(null, "This is a message");
12.菜单
菜单(JMenu
)是用于提供一组命令的下拉列表,用户可以从中选择操作。
每个能够持有菜单的组件,包括JApplet、JFrame、JDialog以及它们的子类,它们都有一个setJMenuBar()方法,它接受一个JMenuBar对象(某个特定组件只能持有一个jMenuBar对象)作为参数。
先把JMenu对象添加到JMenuBar中,然后把JmenuItem添加到JMenu中。每个都能有一个相关联的Actionlistener,用来捕获菜单项被选中时所触发的事件。
示例程序:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MenuExample {
public static void main(String[] args) {
// 创建 JFrame
JFrame frame = new JFrame("Menu Example");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建 JMenuBar
JMenuBar menuBar = new JMenuBar();
// 创建 JMenu
JMenu fileMenu = new JMenu("File");
// 创建 JMenuItem
JMenuItem openItem = new JMenuItem("Open");
JMenuItem exitItem = new JMenuItem("Exit");
// 为 JMenuItem 添加 ActionListener
openItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "Open menu item selected");
}
});
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
// 将 JMenuItem 添加到 JMenu
fileMenu.add(openItem);
fileMenu.add(exitItem);
// 将 JMenu 添加到 JMenuBar
menuBar.add(fileMenu);
// 将 JMenuBar 设置到 JFrame
frame.setJMenuBar(menuBar);
// 显示 JFrame
frame.setVisible(true);
}
}
13.弹出式菜单
弹出式菜单(JPopupMenu
)是在鼠标右键点击时显示的菜单,通常用于提供上下文相关的操作选项。
JPopupMenu popup = new JPopupMenu();
popup.add(new JMenuItem("Option 1"));
14.绘图
绘图(Graphics
)允许在组件上绘制自定义图形和文本,通过重写组件的paintComponent
方法来实现。
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("Custom Drawing", 20, 20);
}
};
15.对话框
对话框(JDialog
)用于显示与用户交互的窗口,通常用于获取用户输入或展示消息。
JDialog dialog = new JDialog();
dialog.setTitle("Dialog");
dialog.setSize(200, 100);
16.文本对话框
文本对话框(JOptionPane.showInputDialog
)用于显示一个简单的对话框,获取用户的文本输入。
String input = JOptionPane.showInputDialog("Enter something:");
17.滑块与进度条
滑块(JSlider
)允许用户通过拖动滑块在一个范围内选择值。
进度条(JProgressBar
)显示一个操作的完成进度,通常用于显示长时间运行的任务进度。
JSlider slider = new JSlider(0, 100, 50);
JProgressBar progressBar = new JProgressBar(0, 100);