Java Swing详细 *** 作

Java Swing详细 *** 作,第1张

Java Swing详细 *** 作

Java Swing详细 *** 作

顶部框架设计

Jframe 界面标题JMenuBar 声明(菜单栏)相关组件 中间框架设计

Jtextarea 文本域组件JList 列表框组件JComboBox:下拉列表组件ButtonGroup 按钮组JRadioButton 单选框JCkeckBox 复选框 底部框架设计

JTextField:单行文本框组件JButton:按钮组件 右键菜单框架设计

JPopupMenu 右键菜单JRadioButtonMenuItem 包含在菜单中的复选框 初始化界面

组装底部组装选择相关的组件组装文本域和选择相关组件组装顶部组装顶部菜单组装右键菜单不需要在监听鼠标事件了定义一个方法,用于改变界面风格刷新组件的外观

顶部框架设计 Jframe 界面标题

 Jframe f = new Jframe("测试Swing基本组件");
JMenuBar 声明(菜单栏)相关组件 名称说明JMenuBer创建一个菜单栏JMenu创建一级菜单栏menuBar.add(变量)一级菜单添加到菜单栏JMenuItem创建 “编辑” 一级菜单的子菜单fileMenu.add(变量);子菜单添加到一级菜单fileMenu.addSeparator()添加一条分割线
# 创建一个菜单栏
    JMenuBar menuBar = new JMenuBar();
#  创建一级菜单
    JMenu fileMenue = new JMenu("文件");
    JMenu editMenue = new JMenu("编辑");

    JMenuItem auto = new JMenuItem("自动换行");
    JMenuItem copy = new JMenuItem("复制");
    JMenuItem paste = new JMenuItem("粘贴");

    JMenuItem formatMenu = new JMenu("格式");
    JMenuItem comment = new JMenuItem("注释");
    JMenuItem cancelComment = new JMenuItem("取消注释");
中间框架设计

Jtextarea 文本域组件

原文链接

Jtextarea说明Jtextarea()创建一个默认的文本域Jtextarea(int rows,int columns)创建一个具有指定行数和列数的文本域Jtextarea(String text)创建一个包含指定文本的文本域Jtextarea(String text,int rows,int columns)创建一个既包含指定文本,又包含指定行数和列数的多行文本域
//声明文本域
 Jtextarea ta = new Jtextarea(8, 20);
JList 列表框组件

原文链接

JList说明JList()构造一个空的只读模型的列表框。JList(ListModel dataModel)根据指定的非 null 模型对象构造一个显示元素的列表框。JList(Object[] listData)使用 listData 指定的元素构造—个列表框。JList(Vector listData)使用 listData 指定的元素构造一个列表框。
//声明列表框
 String[] colors = {"红色", "绿色", "蓝色"};
    JList colorList = new JList(colors);
JComboBox:下拉列表组件

下拉列表的特点是将多个选项折叠在一起,只显示最前面的或被选中的一个

JComboBox说明JComboBox()创建一个空的 JComboBox 对象JComboBox(ComboBoxModel aModel)创建一个 JComboBox,其选项取自现有的 ComboBoxModelJComboBox(Object[] items)创建包含指定数组中元素的 JComboBox
JComboBox colorSelect = new JComboBox();
ButtonGroup 按钮组
ButtonGroup bg = new ButtonGroup();
JRadioButton 单选框

原文链接

JRadioButton male = new JRadioButton("男", false);
JRadioButton female = new JRadioButton("女", true);
JCkeckBox 复选框
JCheckBox isMarried = new JCheckBox("是否已婚?", true);
底部框架设计

JTextField:单行文本框组件

原文链接
中使用 JTextField 类实现一个单行文本框,它允许用户输入单行的文本信息

JTextField说明JTextField()创建一个默认的文本框JTextField(String text)创建一个指定初始化文本信息的文本框JTextField(int columns)创建一个指定列数的文本框JTextField(String text,int columns)创建一个既指定初始化文本信息,又指定列数的文本框
JTextField tf = new JTextField(40);
JButton:按钮组件

原文链接
按钮是图形界面上常见的元素,在前面已经多次使用过它。在 Swing 中按钮是 JButton 类的对象,JButton 类的常用构造方法如下

JButton说明JButton()创建一个无标签文本、无图标的按钮。JButton(Icon icon)创建一个无标签文本、有图标的按钮。JButton(String text)创建一个有标签文本、无图标的按钮。JButton(String text,Icon icon)创建一个有标签文本、有图标的按钮。
 JButton ok = new JButton("确定");
右键菜单框架设计 JPopupMenu 右键菜单

原文链接
d出菜单是一个可d出并显示一系列选项的悬浮小窗口。在实际应用中通常通过单击鼠标右键触发d出显示

JPopupMenu jPopupMenu = new JPopupMenu();
ButtonGroup poupButtonBg = new ButtonGroup();
JRadioButtonMenuItem 包含在菜单中的复选框

原文链接
JRadioButtonMenuItem类表示可以包含在菜单中的复选框。选中菜单中的复选框可将控件的状态从打开更改为关闭或从关闭更改为打开

    JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem(" metal 风格");
    JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem("Nimbus 风格");
    JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem("Windows 风格");
    JRadioButtonMenuItem windowsClassicItem = new JRadioButtonMenuItem("Windows 经典风格");
    JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("Motif 风格");
初始化界面

一个初始化方法 public 说明 是公用的,void说明没返回值,init是方法名 ()里面是参数列表。这里没有参数

public void init() {

}
组装底部

原文链接
JPanel 面板
JPanel 是一种中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用。JPanel 类的构造方法如下。
JPanel():使用默认的布局管理器创建新面板,默认的布局管理器为 FlowLayout。
JPanel(LayoutManagerLayout layout):创建指定布局管理器的 JPanel 对象。

public void init() {
        //组装视图
        //组装底部
        JPanel bottomPanel = new JPanel();
        bottomPanel.add(tf);
        bottomPanel.add(ok);
        //BorderLayout.SOUTH 边界布局。南方
        f.add(bottomPanel, BorderLayout.SOUTH);
组装选择相关的组件
        //组装选择相关的组件
        JPanel selectPanel = new JPanel();
        //colorSelect.addItem 颜色选择。增加列表项
        colorSelect.addItem("红色");
        colorSelect.addItem("绿色");
        colorSelect.addItem("蓝色");
        //selectPanel 选择面板
        selectPanel.add(colorSelect);
        
        bg.add(male);
        bg.add(female);
        //JPanel 默认位置中间
        selectPanel.add(male);
        selectPanel.add(female);
        selectPanel.add(isMarried);

组装文本域和选择相关组件

createHorizontalBox()
创建一个从左到右显示其组件的 Box。
Box容器垂直排列

        Box topLeft = Box.createVerticalBox();
        topLeft.add(ta);
        topLeft.add(selectPanel);
组装顶部
        Box top = Box.createHorizontalBox();
        top.add(topLeft);
        top.add(colorList);
        
        f.add(top);
组装顶部菜单
        formatMenu.add(comment);
        formatMenu.add(cancelComment);

        editMenue.add(auto);
        editMenue.addSeparator();
        editMenue.add(copy);
        editMenue.add(paste);
        editMenue.addSeparator();
        editMenue.add(formatMenu);

        menuBar.add(fileMenue);
        menuBar.add(editMenue);

        f.setJMenuBar(menuBar);
组装右键菜单
        poupButtonBg.add(metalItem);
        poupButtonBg.add(nimbusItem);
        poupButtonBg.add(windowsItem);
        poupButtonBg.add(windowsClassicItem);
        poupButtonBg.add(motifItem);
        //ActionListener 监听器
        ActionListener listener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //当前选择的是哪一个风格
                String actionCommand = e.getActionCommand();
                try {
                    changeFlavor(actionCommand);
                }catch (Exception ex){
                    ex.printStackTrace();
                }
            }
        };
        metalItem.addActionListener(listener);
        nimbusItem.addActionListener(listener);
        windowsItem.addActionListener(listener);
        windowsClassicItem.addActionListener(listener);
        motifItem.addActionListener(listener);
        jPopupMenu.add(metalItem);
        jPopupMenu.add(nimbusItem);
        jPopupMenu.add(windowsItem);
        jPopupMenu.add(windowsClassicItem);
        jPopupMenu.add(motifItem);
不需要在监听鼠标事件了
        ta.setComponentPopupMenu(jPopupMenu);

        f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
        f.pack();
        f.setVisible(true);

    }
    public static void main(String[] args) {
        new SwingComponentDemo().init();
    }
定义一个方法,用于改变界面风格
    private void changeFlavor(String command) throws Exception{
        switch (command){
            case "metal 风格":
                UIManager.setLookAndFeel("javax.swing.plaf.metal.metalLookAndFeel");
                break;
            case "Nimbus 风格":
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
                break;
            case "Windows 风格":
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                break;
            case "Windows 经典风格":
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
                break;
            case "Motif 风格":
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
                break;
        }
刷新组件的外观
        SwingUtilities.updateComponentTreeUI(f.getContentPane());
        SwingUtilities.updateComponentTreeUI(menuBar);
        SwingUtilities.updateComponentTreeUI(jPopupMenu);
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5716731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存