文档章节

Java图形用户界面布局控制Layout练习

ClownZhang
 ClownZhang
发布于 2016/04/26 10:45
字数 796
阅读 19
收藏 0
  1. package com.yin2na.example;  
  2.   
  3. import java.awt.BorderLayout;  
  4. import java.awt.FlowLayout;  
  5. import java.awt.GridLayout;  
  6. import javax.swing.JFrame;  
  7. import javax.swing.JButton;  
  8. import java.awt.event.WindowListener;  
  9. import java.awt.event.WindowEvent;  
  10. import java.awt.event.WindowAdapter;  
  11.   
  12. class HelloLayout   
  13. {  
  14.     public static void main(String[] args)   
  15.     {  
  16.         HelloBorderLayout.setBorderLayout();  
  17.     }  
  18.   
  19.   
  20.     public static void showMe(JFrame jf)  
  21.     {  
  22.         jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作。   
  23.         jf.setSize(300,300);  
  24.         jf.setVisible(true);  
  25.     }  
  26. }  
  27.   
  28. class HelloBorderLayout  
  29. {  
  30.     public static JFrame jf = new JFrame("BorderLayout");  
  31.     public static void setBorderLayout()  
  32.     {  
  33.         jf.setLayout(new BorderLayout());//BorderLayout是Swing容器的默认布局管理器,它的含义是采用东南西北中5个方位来进行布局,可以分别往这些方位上放置组件。  
  34.         jf.add(new JButton("east"), BorderLayout.EAST);  
  35.         jf.add(new JButton("south"), BorderLayout.SOUTH);  
  36.         jf.add(new JButton("west"), BorderLayout.WEST);  
  37.         jf.add(new JButton("north"), BorderLayout.NORTH);  
  38.         jf.add(new JButton("center"), BorderLayout.CENTER);  
  39.         jf.addWindowListener(new WindowListener(){//匿名内部类  用于接收窗口事件的侦听器接口。旨在处理窗口事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 WindowAdapter(仅重写所需的方法)。然后使用窗口的 addWindowListener 方法将从该类所创建的侦听器对象向该 Window 注册。当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,将调用该侦听器对象中的相关方法,并将 WindowEvent 传递给该方法。   
  40.             public void windowClosing(WindowEvent e)  
  41.             {  
  42.                 HelloBorderLayout.jf.dispose();  
  43.                 HelloFlowLayout.setFlowLayout();  
  44.             }  
  45.   
  46.             public void windowActivated(WindowEvent e)  
  47.             {};  
  48.   
  49.             public void windowDeactivated(WindowEvent e)  
  50.             {};  
  51.   
  52.             public void windowDeiconified(WindowEvent e)  
  53.             {};  
  54.   
  55.             public void windowIconified(WindowEvent e)  
  56.             {};  
  57.   
  58.             public void windowOpened(WindowEvent e)  
  59.             {};  
  60.   
  61.             public void windowClosed(WindowEvent e)  
  62.             {};  
  63.         });  
  64.         HelloLayout.showMe(jf);  
  65.     }  
  66. }  
  67.   
  68. class HelloFlowLayout  
  69. {  
  70.     public static JFrame jf = new JFrame("FlowLayout");//FlowLayout布局器采用流线型布局方式,把组件从左到右依次地放置,如果摆放不下,则换到下一行继续放置。  
  71.     public static void setFlowLayout()  
  72.     {  
  73.         jf.setLayout(new FlowLayout());//设置此容器的布局管理器。  
  74.         for(int i = 0; i < 10; i++)  
  75.         {  
  76.             jf.add(new JButton(i+""));  
  77.         }  
  78.         //jf.addWindowListener(new WindowListener(){  
  79.         //  public void windowClosing(WindowEvent e)  
  80.         //  {  
  81.         //      HelloFlowLayout.jf.dispose();//释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。   
  82.         //      HelloGridLayout.setGridLayout();  
  83.         //  };  
  84.   
  85.         //  public void windowActivated(WindowEvent e)  
  86.         //  {};  
  87.   
  88.         //  public void windowDeactivated(WindowEvent e)  
  89.         //  {};  
  90.   
  91.         //  public void windowDeiconified(WindowEvent e)  
  92.         //  {};  
  93.   
  94.         //  public void windowIconified(WindowEvent e)  
  95.         //  {};  
  96.   
  97.         //  public void windowOpened(WindowEvent e)  
  98.         //  {};  
  99.   
  100.         //  public void windowClosed(WindowEvent e)  
  101.         //  {};  
  102.         //});  
  103.         jf.addWindowListener(new WindowAdapter(){//Swing的适配器能够避免代码的冗余,为一些监听器接口的方法提供默认的空实现,这样就可以直接继承自适配器,不必把每一个接口方法都实现。  
  104.             public void windowClosing(WindowEvent e)  
  105.             {  
  106.                 HelloFlowLayout.jf.dispose();//释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。   
  107.                 HelloGridLayout.setGridLayout();  
  108.             };  
  109.         });  
  110.         HelloLayout.showMe(jf);  
  111.     }  
  112. }  
  113.   
  114. class HelloGridLayout  
  115. {  
  116.     public static void setGridLayout()  
  117.     {  
  118.         JFrame jf = new JFrame("GridLayout");//GridLayout布局管理器采用表格式的布局方式,它把容器等分为N*M个格子,然后把加入的组件依次旋转在格子中。  
  119.         jf.setLayout(new GridLayout(1010));  
  120.         for(int i = 0; i< 100; i++)  
  121.         {  
  122.             jf.add(new JButton(i+""));  
  123.         }  
  124.         HelloLayout.showMe(jf);  
  125.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。   
  126.     }  
  127. }  

 

           

 

本文转载自:http://blog.csdn.net/zhaowei_zhang/article/details/46999821

ClownZhang
粉丝 1
博文 19
码字总数 4416
作品 0
东莞
程序员
私信 提问
【笔记】与Android酱的第一周

这周初识了Android酱 啊~AS界面好帅! AS是周四才装的,所以第一周只有半周啦。 Android练习:主角是 LinearLayout 新建的工程空空的: manifests:配置文件。 java:当然是放java的啦。 re...

UFO草帽
2018/06/28
0
0
Java图形用户界面布局控制Layout练习

尝试搭建登录对话框,包含两个文字标签(用户名、服务器IP),两个文本输入条(用户名、服务器IP),一个按钮(登录),按照自己认为合适的方式布局。   我把GridLayout(网格布局)、Bor...

devops1024
2018/06/27
0
0
布局管理器 5-----绝对布局

绝对布局由AbsoluteLayout代表。绝对布局就像java AWT编程中的空布局,就是Android不提供任何布局控制而是由开发人员自己通过X坐标、Y坐标来控制组件的位置。当使用AbsoluteLayout作为布局容...

谷飞
2012/11/10
270
0
Android中的资源与国际化-----

我们主要看一下layout与values目录,layout里的xml文件的我们应用使用布局的文件,values里的sring.xml是用来存放文字资源,一个key对应一个value值。 但是在实际应用开发中,通常横屏(land)与...

android自学
2018/07/28
0
0
ym——Android仿QQ5.0侧滑菜单ResideMenu源码分析

AndroidResideMenu github:https://github.com/SpecialCyCi/AndroidResideMenu csdn:http://download.csdn.net/detail/cym492224103/7887801 先看看如何使用: 把项目源码下载下来导入工程,......

天下杰论
2014/11/13
392
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
5
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
8
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部