• 【Java-GUI】10 Swing04


    面板容器:

    package cn.dzz.swing;
    
    import javax.swing.*;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    
    public class Demo07 {
    
        JFrame jFrame = new JFrame("案例");
        JTabbedPane jTabbedPane = new JTabbedPane(SwingConstants.LEFT, JTabbedPane.SCROLL_TAB_LAYOUT);
    
        void init() {
            // 组装视图
    
            // 添加标签
            jTabbedPane.addTab(
                    "用户管理",
                    new ImageIcon("img/icon01.png"),
                    new JList<String>(new String[]{
                            "用户一",
                            "用户二",
                            "用户三",
                    }
                    )
            );
            jTabbedPane.addTab(
                    "商品管理",
                    new JList<String>(new String[]{
                            "商品一",
                            "商品二",
                            "商品三",
                    }
                    )
            );
            jTabbedPane.addTab(
                    "订单管理",
                    new ImageIcon("img/icon01.png"),
                    new JList<String>(new String[]{
                            "订单一",
                            "订单二",
                            "订单三",
                    }
                    )
            );
    
            jTabbedPane.setEnabledAt(0, false);
            jTabbedPane.setSelectedIndex(1);
            jTabbedPane.addChangeListener(new ChangeListener() {
                @Override
                public void stateChanged(ChangeEvent e) {
                    int selectedIndex = jTabbedPane.getSelectedIndex();
                    JOptionPane.showMessageDialog(
                            jFrame,
                            "当前选中第" + (selectedIndex + 1) + "标签"
                    );
                }
            });
    
            jFrame.add(jTabbedPane);
    
            jFrame.setResizable(false);
            jFrame.setBounds(400, 400, 400, 400);
    
    
            jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            // jFrame.pack();
            jFrame.setVisible(true);
        }
    
        public static void main(String[] args) {
            new Demo07().init();
        }
    }
    

    效果:

    进度条:

    package cn.dzz.swing;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class Demo01 {
    
        JFrame jFrame = new JFrame("ProgressBar");
    
        // 水平进度条
        JProgressBar jProgressBar = new JProgressBar(
                JProgressBar.HORIZONTAL
        );
    
        // 按钮
        JCheckBox indeterminate = new JCheckBox("不确定进度");
        JCheckBox noBorder = new JCheckBox("无绘制边框");
    
        public void init() {
            // 添加
            indeterminate.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    // 获取状态是否为选中
                    boolean selected = indeterminate.isSelected();
                    jProgressBar.setIndeterminate(selected);
                    jProgressBar.setStringPainted(!selected);
                }
            });
    
            noBorder.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    boolean selected = noBorder.isSelected();
                    noBorder.setBorderPainted(!selected);
                }
            });
            Box verticalBox = Box.createVerticalBox();
    
            verticalBox.add(indeterminate);
            verticalBox.add(noBorder);
    
            jProgressBar.setStringPainted(true);
            jProgressBar.setBorderPainted(true);
            // 改变窗体东西南北中的布局,设置流布局方式
            jFrame.setLayout(new FlowLayout());
            jFrame.add(verticalBox);
            jFrame.add(jProgressBar);
            jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jFrame.pack();
            jFrame.setVisible(true);
    
    
            // 模拟进度加载
            for (int i = 0; i <= 100; i++) {
                jProgressBar.setValue(i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
            new Demo01().init();
        }
    }
    

    效果:

  • 相关阅读:
    谷歌浏览器最新版下载链接
    第二章 算法——程序的灵魂
    第一章:程序设计和C语言
    C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂
    面向对象之类的其他方法
    面向对象之反射、包装、(定制)
    PyCharm使用秘籍视频
    re模块(详解正则)
    ATM购物车程序项目规范(更新到高级版)
    音乐脚本
  • 原文地址:https://www.cnblogs.com/mindzone/p/14400374.html
Copyright © 2020-2023  润新知