图形化用户界面-Swing组件

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值