控制台程序。

边界布局管理器最多能在容器中放置5个组件。在这种布局管理器中,可以把组件放在容器的任意一个边界上,也可以把组件放在容器的中心。每个位置只能放置一个组件。如果把组件放置在已被占用的边界上,前一个组件就会被取代。要选择边界,应指定约束,约束可以是NORTH、SOUTH、EAST、WEST或CENTER。它们都是BorderLayout类中定义的final static常量。

 import javax.swing.*;
 import javax.swing.SwingUtilities;
 import java.awt.*;
 import javax.swing.border.EtchedBorder;

 public class TryBorderLayout {

   public static void createWindow(){
     JFrame aWindow = new JFrame("This is the Window Title");
     Toolkit theKit = aWindow.getToolkit();                             // Get the window toolkit
     Dimension wndSize = theKit.getScreenSize();                        // Get screen size

     // Set the position to screen center & size to half screen size
     aWindow.setSize(wndSize.width/2, wndSize.height/2);                // Set window size
     aWindow.setLocationRelativeTo(null);                               // Center window
     aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     BorderLayout border = new BorderLayout();                          // Create a layout manager
     Container content = aWindow.getContentPane();                      // Get the content pane
     content.setLayout(border);                                         // Set the container layout mgr
     EtchedBorder edge = new EtchedBorder(EtchedBorder.RAISED);         // Button border

     // Now add five JButton components and set their borders
     JButton button;
     content.add(button = new JButton("EAST"), BorderLayout.EAST);
     button.setBorder(edge);
     content.add(button = new JButton("WEST"), BorderLayout.WEST);
     button.setBorder(edge);
     content.add(button = new JButton("NORTH"), BorderLayout.NORTH);
     button.setBorder(edge);
     content.add(button = new JButton("SOUTH"), BorderLayout.SOUTH);
     button.setBorder(edge);
     content.add(button = new JButton("CENTER"), BorderLayout.CENTER);
     button.setBorder(edge);

     aWindow.setVisible(true);                                          // Display the window
   }

   public static void main(String[] args) {
     SwingUtilities.invokeLater(new Runnable() {
             public void run() {
                 createWindow();
             }
         });
   }
 }

Java基础之创建窗口——使用边界布局管理器(TryBorderLayout)的更多相关文章

  1. Java基础之创建窗口——使用网格布局管理器(TryGridLayout)

    控制台程序. 网格布局管理器可以在容器的矩形网格中布局组件. import javax.swing.*; import java.awt.*; import javax.swing.border.Et ...

  2. Java基础之创建窗口——使用卡片布局管理器(TryCardLayout)

    控制台程序. 卡片布局管理器会生成一叠组件——一个组件放在另一个组件的上面.添加到容器中的第一个组件在堆栈的顶部,因此是可见的,添加的最后一个组件在堆栈的底部.使用默认的构造函数CardLayout( ...

  3. JAVA 边界布局管理器

    //边界布局管理器 import java.awt.*; import javax.swing.*; public class Jiemian1 extends JFrame{ //定义组件 JBut ...

  4. java边界布局管理器

    public class BorderLayoutPosition extends JFrame{        String[] border={BorderLayout.CENTER,Border ...

  5. Java基础之创建窗口——使用GridBagLayout管理器(TryGridBagLayout)

    控制台程序. java.awt.GridBagLayout管理器比前面介绍的其他布局管理器灵活得多,因此使用起来也比较复杂.基本机制就是在随意的矩形网格中布局组件,但网格的行和列不一定拥有相同的高度和 ...

  6. Java基础之创建窗口——使用BoxLayout管理器(TryBoxLayout4)

    控制台程序. javax.swing.BoxLayout类定义的布局管理器在单行或单列中布局组件.创建BoxLayout对象时,需要指定是在行还是列中布局组件. 对于行,组件是从左到右地添加:对于列, ...

  7. Java基础之创建窗口——使用SpringLayout管理器(TrySpringLayout)

    控制台程序. 可以把JFrame对象aWindow的内容面板的布局管理器设置为javax.swing.SpringLayout管理器. SpringLayout类定义的布局管理器根据javax.swi ...

  8. Java基础之创建窗口——使用流布局管理器(TryFlowLayout)

    控制台程序. FlowLayout把组件放在容器的连续行中,使每一行都放置尽可能多的组件.如果某行已满,就放在下一行.工作方式类似于文本处理器把单词放在行中.主要用途是放置按钮,但也可以用来放置其他组 ...

  9. Java基础之创建窗口——向窗口中添加菜单(Sketcher)

    控制台程序. JMenuBar对象表示放在窗口顶部的菜单栏.可以为JMenuBar对象添加JMenu或JMenuItem对象,它们都显示在菜单栏上.JMenu对象是带有标签的菜单,单击就可以显示一列菜 ...

随机推荐

  1. 面试题HTML +CSS

    HTML+CSS部分1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素?行内元素:和有他元素都在一行上,高度.行高及外边距和内边距都不可改变,文字图片的宽度不可改变,只能容纳文本或者其他 ...

  2. ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 7

    问题: 使用hibernate4.1.1,数据库使用mysql5.1.30,使用hibernate自动生成数据库表时,hibernate方言使用org.hibernate.dialect.MySQLI ...

  3. hbase基础-系统架构

    HBase 系统架构 HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列 ...

  4. RPM卸载软件包

    如何卸载rpm包 首先:通过  rpm -q <关键字> 可以查询到rpm包的名字 然后:调用 rpm -e <包的名字> 删除特定rpm包 如果遇到依赖,无法删除,使用 rp ...

  5. nginx搭建http和rtmp协议的流媒体服务器

    nginx搭建http和rtmp协议的流媒体服务器 时间:2013-09-23 23:52来源:佚名 作者:本站 举报 点击:232次 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtm ...

  6. Linux 与 CONE NAT 和 Symmetric NAT

    http://alexanderlaw.blog.hexun.com/31883661_d.html 1. NAT 的划分 RFC3489 中将 NAT 的实现分为四大类: 1. Full Cone ...

  7. php-resque 任务队列

    php-resque License : MIT Source Code Allo点评:php-resque是Ruby项目resque在php下的实现.虽然Gearman也是一个不错的选择,但是res ...

  8. css link和@import区别用法

    这里link与@import介绍的是html引入css的语法单词.两者均是引入css到html的单词. 1.link语法结构<link rel="stylesheet" ty ...

  9. Delphi2010中DataSnap技术网摘

    一.为DataSnap系统服务程序添加描述 这几天一直在研究Delphi 2010的DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7该下岗了. DataSnap有三种服务模式,其中 ...

  10. xml学习总结(三)

    复杂Schema 扩展包含简单内容的复杂类型 <?xml version="1.0" encoding="UTF-8"?> <xs:schem ...