zoukankan      html  css  js  c++  java
  • [JavaSwing练习] 第一天:JFrame,JPanel,JTabbedPane图集

    有一个不错的点子(制作周期大概半个月), 这次完全想靠自己肝出来, 首先得会一种GUI, 思来想去, 那就用JavaSwing吧, 顺便把这学期的Java课设作为作品的一个小分支(日常水课设), 先熟悉几天之后会用到的JavaSwing容器/组件吧...


    JFrame

    myWindow.java

    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    
    public class myWindow extends JFrame{
        JPanel panel = new JPanel();
        JButton btn = new JButton("To New World!→");
        myWindow(){
            this.setTitle("My Window");
            this.setSize(400, 400);
            this.setLocationRelativeTo(null);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            panel.add(btn);
            btn.setFont(new Font(null, Font.PLAIN, 30));
            btn.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    showNewWindow();
                }
            });
    
            this.setContentPane(panel);
            this.setVisible(true);
        }
    
        public void showNewWindow(){
            JFrame newJFrame = new JFrame("new window");//名字
            newJFrame.setFont(new Font(null, Font.PLAIN, 30));//字体
            newJFrame.setSize(250, 250);//大小
            newJFrame.setResizable(false);//大小不可变
            newJFrame.setLocationRelativeTo(this);//位置
            newJFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//只关闭新窗口
    
            JPanel panel = new JPanel(new GridLayout(1,1));
    
            JLabel label = new JLabel("你所处的是新世界");
            label.setFont(new Font(null, Font.PLAIN, 30));
    //        label.setHorizontalAlignment(SwingConstants.CENTER);
    //        label.setVerticalAlignment(SwingConstants.CENTER);
            panel.add(label);
    
            newJFrame.setContentPane(panel);
            newJFrame.setVisible(true);
        }
    
    }
    

    JPanel

    import java.awt.*;
    import javax.swing.*;
    
    
    public class Main {
        public static void main(String[] args) {
            JFrame jf = new JFrame("用户登录");
            jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            //使用默认的浮动布局
            JPanel panel01 = new JPanel();
            panel01.add(new JLabel("用户名"));
            panel01.add(new JTextField(10));
    
            JPanel panel02 = new JPanel();
            panel02.add(new JLabel("密   码"));
            panel02.add(new JPasswordField(10));
    
            //使用浮动布局, 且容器中组件居中显示
            JPanel panel03 = new JPanel(new FlowLayout(FlowLayout.CENTER));
            panel03.add(new JButton("登录"));
            panel03.add(new JButton("注册"));
    
            // 创建一个垂直盒子容器
            Box vBox = Box.createVerticalBox();
            vBox.add(panel01);
            vBox.add(panel02);
            vBox.add(panel03);
    
            jf.setContentPane(vBox);
            jf.setLocationRelativeTo(null);
            jf.setSize(300, 200);
            jf.setVisible(true);
        }
    
    }

    JTabbedPane

    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    
    public class Main {
    
        public static void main(String[] args) {
            JFrame jf = new JFrame("photo");
            jf.setSize(300, 300);
            jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            jf.setLocationRelativeTo(null);
    
            // 创建选项卡面板
            final JTabbedPane tabbedPane = new JTabbedPane();
            tabbedPane.setFont(new Font(null, Font.PLAIN, 30));
            tabbedPane.addTab("Tab01", createTextPanel(1));
            tabbedPane.addTab("Tab02", createTextPanel(2));
            tabbedPane.addTab("Tab03",  createTextPanel(3));
            tabbedPane.addTab("Tab04", createTextPanel(4));
            tabbedPane.addTab("Tab05", createTextPanel(5));
            tabbedPane.addTab("Tab06",  createTextPanel(6));
            tabbedPane.addTab("Tab07", createTextPanel(7));
            tabbedPane.addTab("Tab08", createTextPanel(8));
            tabbedPane.addTab("Tab09",  createTextPanel(9));
    
            // 添加选项卡选中状态改变的监听器
            tabbedPane.addChangeListener(new ChangeListener() {
                @Override
                public void stateChanged(ChangeEvent e) {
                    System.out.println("当前选中的是: " + tabbedPane.getSelectedIndex());
                }
            });
    
            // 设置默认选中的选项卡
            tabbedPane.setSelectedIndex(5);
            jf.setContentPane(tabbedPane);
            jf.setVisible(true);
        }
    
    
        // 创建一个面板,面板中心显示一个标签表示选项卡需要显示的内容
        private static JComponent createTextPanel(int num) {
            // 1 * 1 的网格布局
            JPanel panel = new JPanel(new GridLayout(1, 1));
            JLabel label = new JLabel();
            label.setIcon(new ImageIcon(num+".jpg"));
    
            label.setFont(new Font(null, Font.PLAIN, 50));
            label.setHorizontalAlignment(SwingConstants.CENTER);
    
            // 添加标签到面板
            panel.add(label);
            return panel;
        }
    }
    

  • 相关阅读:
    难以理解的二分查找
    程序设计第七次作业——关于计算器的总结
    程序设计第六次作业——计算器(可视化界面)
    课堂作业——1025反转链表
    程序设计第五次作业——计算器(调用文件输入输出)
    circle area
    程序设计第四次作业——计算器第二步(计算)
    第三次作业代码规范修改
    解决Type 'UnityEngine.Component' does not support slicing
    mactype支持qq浏览器
  • 原文地址:https://www.cnblogs.com/Knight02/p/15799047.html
Copyright © 2011-2022 走看看