codecamp

Java Swing BorderLayout

Java Swing教程 - Java Swing BorderLayout


BorderLayout将容器的空间分为五个区域:北,南,东,西和中心。

BorderLayout将容器的空间分为五个区域:北,南,东,西和中心。...

BorderLayout类定义了五个常量来标识五个区域中的每一个。常数为NORTH,SOUTH,EAST,WEST和CENTER。

例如,要向北方区域添加按钮。

JButton northButton = new JButton("North"); 
container.add(northButton, BorderLayout.NORTH);

JFrame的内容窗格的默认布局是BorderLayout。

以下代码显示如何向JFrame的内容窗格添加五个按钮。

import java.awt.BorderLayout;
import java.awt.Container;
//from   w w  w . j  a v  a  2s  .  co m
import javax.swing.JButton;
import javax.swing.JFrame;

public class Main {
  public static void main(String[] args) {
    JFrame frame = new JFrame("BorderLayout Test");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container container = frame.getContentPane();

    // Add a button to each of the five areas of the BorderLayout
    container.add(new JButton("North"), BorderLayout.NORTH);
    container.add(new JButton("South"), BorderLayout.SOUTH);
    container.add(new JButton("East"), BorderLayout.EAST);
    container.add(new JButton("West"), BorderLayout.WEST);
    container.add(new JButton("Center"), BorderLayout.CENTER);

    frame.pack();
    frame.setVisible(true);
  }
}

我们可以在BorderLayout的每个区域最多添加一个组件。我们可以选择将一些区域留空。

要将多个组件添加到BorderLayout的区域,请使用嵌套容器。

如果我们没有为组件指定区域,则将其添加到中心。以下两个语句具有相同的效果:

container.add(new JButton("Close"));
container.add(new JButton("Close"),  BorderLayout.CENTER);

BorderLayout根据面积计算组件的大小。它使用北和南的组件的首选高度。

BorderLayout根据北部和南部的可用空间水平伸展部件的宽度,它不考虑北部和南部部件的首选宽度。

BorderLayout尊重东部和西部的组件的首选宽度,并给予它们垂直填充整个空间所需的高度。

组件在中心区域被水平地和垂直地拉伸以适应可用空间。中心区域不考虑其部件的优选宽度和高度。



Java Swing FlowLayout
Java Swing CardLayout
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }