zoukankan      html  css  js  c++  java
  • Swing中GridBagLayout效果展示

    GridBagLayout可以算是Swing里最好理解,最方便控制的布局,下面代码展示了一个GUI,留待日后备用。

    效果:

    代码:

    package com.hy;
    
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.Toolkit;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    
    public class FolderGui {
        public static void main(String[] args) {
            //-- 创建frame及进行相关测试
            JFrame frame=new JFrame("Pictures Show 图片幻灯展示");
            
            // 点击关闭按钮退出
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            // 关闭最大化功能
            //frame.setResizable(false);
            
            // 设置宽高
            frame.setSize(420, 150);
            
            // 取得屏幕宽度
            double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
            
            // 取得屏幕高度
            double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
            
            // 设置窗体居中显示
            frame.setLocation( (int) (width - frame.getWidth()) / 2,
            (int) (height - frame.getHeight()) / 2);
            
            //-- 添加组件
            JPanel panel=new JPanel();// 新建容器面板
            panel.setBorder(new EmptyBorder(5,5,5,5));// 设置边界
            panel.setLayout(new GridBagLayout());// 设置布局
            
            GridBagConstraints c=new GridBagConstraints();        
            c.fill=GridBagConstraints.HORIZONTAL;// 填充模式为水平充满
            
            c.weightx=0.0;// 权重0,表示不占用多余空间
            c.gridx=0;
            c.gridy=0;// 占左上
            panel.add(new JLabel("图片所在目录:"),c);
            
            c.weightx=1.0;// 权重1,多余空间全归属到此
            c.gridx=1;
            c.gridy=0;// 占右上
            c.insets=new Insets(0,5,0,0);// 左边填充五个像素
            panel.add(new JTextField("",15),c);
            
            c.weightx=0.0;
            c.gridx=0;
            c.gridy=1;// 占中左
            c.insets=new Insets(10,0,0,0);// 上边填充五个像素
            panel.add(new JLabel("图片展示间隔:"),c);
            
            c.weightx=1.0;
            c.gridx=1;
            c.gridy=1;// 占中右
            c.insets=new Insets(0,5,0,0);
            panel.add(new JTextField("",15),c);
            
            c.weightx=0.0;
            c.gridx=0;
            c.gridy=2;// 占下部
            c.insets=new Insets(5,0,0,0);
            c.gridwidth=2;// 跨两格
            c.fill=GridBagConstraints.CENTER;// 居中而不填充,取默认大小
            panel.add(new JButton("开始展示图片"),c);
            
            frame.add(panel);
            
            // 显示frame
            frame.setVisible(true);        
        }
    }

    END

  • 相关阅读:
    Centos 6.5 在 Dell 服务器安装的记录
    【转载】你真的了解补码吗
    【转载】我对补码的理解
    记录一下家里双路由实现wifi漫游功能
    中国大学MOOC | C语言程序设计入门 第8周编程练习 翁恺
    华为卡刷包线刷方法
    串口通信
    端口复用和端口重映射
    软件仿真和硬件仿真
    FPGA之四位LED灯
  • 原文地址:https://www.cnblogs.com/heyang78/p/15102653.html
Copyright © 2011-2022 走看看