`

Swing的Box布局

阅读更多
package com.wangyu;

// 使用盒式布局管理器
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.BoxLayout;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.BorderFactory;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import javax.swing.border.EtchedBorder;
import javax.swing.border.CompoundBorder;
import javax.swing.border.BevelBorder;

import java.awt.Toolkit;
import java.awt.Dimension;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Color;

public class TryBoxLayout {
	// The window object
	static JFrame aWindow = new JFrame("This is a Box Layout");
	/**
	 * Method main
	 *
	 *
	 * @param args
	 *
	 */
	public static void main(String[] args) {
		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.setBounds(wndSize.width/4,wndSize.height/4,	// Position
						  wndSize.width/2,wndSize.height/2);// Size
						  
		aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// Create left column of radio buttons
		Box left=Box.createVerticalBox();
		ButtonGroup radioGroup=new ButtonGroup();			// Create button group
		JRadioButton rbutton;								// Stores a button
		radioGroup.add(rbutton=new JRadioButton("Red"));	// Add to group
		left.add(Box.createVerticalStrut(30));				// Starting space
		left.add(rbutton);									// Add to Box
		radioGroup.add(rbutton=new JRadioButton("Green"));	// Add to group
		left.add(Box.createVerticalStrut(30));				// Space between
		left.add(rbutton);									// Add to Box
		radioGroup.add(rbutton=new JRadioButton("Blue"));	// Add to group
		left.add(Box.createVerticalStrut(30));				// Space between
		left.add(rbutton);									// Add to Box
		radioGroup.add(rbutton=new JRadioButton("Yellow"));	// Add to group
		left.add(Box.createVerticalStrut(30));				// Space between
		left.add(rbutton);									// Add to Box
		left.add(Box.createGlue());							// Clue at the end
		
		// Create a panel with a titled border to hold the left Box container
		JPanel leftPanel=new JPanel(new BorderLayout());
		leftPanel.setBorder(new TitledBorder(
			new EtchedBorder(),								// Border to use
			"Line Color"));									// Border title
		leftPanel.add(left,BorderLayout.CENTER);
		
		// Create right columns of checkboxes
		Box right=Box.createVerticalBox();
		right.add(Box.createVerticalStrut(30));				// Starting space
		right.add(new JCheckBox("Dashed"));
		right.add(Box.createVerticalStrut(30));				// Space between
		right.add(new JCheckBox("Thick"));
		right.add(Box.createVerticalStrut(30));				// Space between
		right.add(new JCheckBox("Rounded"));
		right.add(Box.createGlue());						// Glue at the end
		
		// Create a panel with a titled border to hold the right Box container
		JPanel rightPanel=new JPanel(new BorderLayout());
		rightPanel.setBorder(new TitledBorder(
			new EtchedBorder(),								// Border to use
			"Line Properties"));							// Border title
		rightPanel.add(right,BorderLayout.CENTER);
		
		// Create top row to hold left and right
		Box top=Box.createHorizontalBox();
		top.add(leftPanel);
		top.add(Box.createHorizontalStrut(5));				// Space between vertical boxes
		top.add(rightPanel);
		
		// Create bottom row of buttons
		JPanel bottomPanel=new JPanel();
		bottomPanel.setBorder(new CompoundBorder(
			BorderFactory.createLineBorder(Color.BLACK,1),			// Outer border
			BorderFactory.createBevelBorder(BevelBorder.RAISED)));	// Inner border
		
		Border edge=BorderFactory.createRaisedBevelBorder();	// Button border
		JButton button;
		Dimension size=new Dimension(80,20);
		bottomPanel.add(button=new JButton("Defaults"));
		button.setBorder(edge);
		button.setPreferredSize(size);
		bottomPanel.add(button=new JButton("OK"));
		button.setBorder(edge);
		button.setPreferredSize(size);
		bottomPanel.add(button=new JButton("Cancel"));
		button.setBorder(edge);
		button.setPreferredSize(size);
		
		// Add top and bottom panel to content pane
		Container content=aWindow.getContentPane();		// Get content pane
		BoxLayout box=new BoxLayout(content,BoxLayout.Y_AXIS);
														// Vertical for content pane
		content.setLayout(box);			// Set border layout manager
		content.add(top);
		content.add(bottomPanel);
		
		aWindow.pack();								// Size for components
		aWindow.setVisible(true);					// Display the window
	}	
}
分享到:
评论

相关推荐

    Swing常见布局管理器总结

    ### Swing常见布局管理器总结 #### 1. BorderLayout - 边界布局管理器 边界布局管理器(`BorderLayout`)是一种非常常见的布局管理器,主要用于处理容器内组件的定位,将其分布在容器的五个基本区域:北(North)...

    Java_swing布局详解(附示例图).doc

    在Java Swing中,布局管理器是用来组织和控制窗口或组件在图形用户界面中显示的方式。它们决定了组件如何根据可用空间自动调整大小和位置。以下是几种常见的布局管理器及其特点: 1. **FlowLayout** FlowLayout是...

    java Swing布局管理之BoxLayout布局

    Java Swing 是 Java 图形用户界面(GUI)开发的一部分,它提供了丰富的组件库和布局管理机制。在Swing中,布局管理器负责决定组件在容器内的位置和大小。BoxLayout 是其中的一种布局管理器,它允许开发者按照特定的...

    (完整word版)Java-swing布局详解(附示例图).doc

    Java Swing 布局详解 Java Swing 是 Java 编程语言中一个功能强大且流行的图形用户界面(GUI)工具包。Swing 提供了大量的组件和布局管理器,用于构建复杂的图形用户界面。在 Swing 中,布局管理器是负责管理组件的...

    Java Swing组件BoxLayout布局用法示例

    Java Swing 组件 BoxLayout 布局用法示例 Java Swing 是 Java 语言中一个功能强大的图形用户界面(GUI)工具包,它提供了丰富的组件和布局管理器,可以帮助开发者快速创建复杂的图形用户界面。在 Java Swing 中,...

    swing小黑点移动

    在Java GUI中,BoxLayoutDemo可能是一个使用BoxLayout布局管理器的示例。BoxLayout允许我们将组件沿X轴或Y轴线性排列。为了实现小黑点移动,我们可能不使用布局管理器来定位小黑点,而是直接在组件的 paintComponent...

    JavaSwing界面设计(所有控件及示例)

    - `Box` 提供了水平或垂直布局的容器。 4. **基本组件** - `JLabel` 显示文本或图像。 - `JButton` 交互按钮,可以触发某些动作。 - `JCheckBox` 和 `JRadioButton` 分别用于多选和单选选项。 - `JList` 和 `...

    java3d和Swing结合示例

    Canvas3D是Java3D的主要显示组件,可以将其添加到Swing的布局中。 3. **3D形体**: 在示例中,各种3D形体被添加到场景中,可能包括Box(立方体)、Sphere(球体)和其他基本几何形状。这些形体可以通过Java3D的...

    java gui 盒子布局实列

    1. **创建Box Layout**: 你可以通过调用`Box.createHorizontalBox()`或`Box.createVerticalBox()`来创建一个使用盒子布局的容器。例如: ```java Box box = Box.createHorizontalBox(); // 创建一个水平布局的Box ...

    Swing用户界面设计

    Swing组件的使用涉及布局管理、事件处理、模型-视图-控制器的交互等多个方面。开发者可以通过添加监听器、设置属性、自定义模型等方式,灵活地定制用户界面的行为和外观。 总的来说,Swing用户界面设计提供了一个...

    Java编程使用箱式布局管理器示例【基于swing组件】

    Java 编程使用箱式布局管理器示例【基于 Swing 组件】 Java 编程使用箱式布局管理器是指在 Java 编程中使用箱式布局管理器来布局组件,使得界面更加美观和易用。在本文中,我们将通过一个示例来介绍如何使用箱式...

    java swing从基础到熟练

    - javax.swing.Box - javax.swing.JComponent ``` ### Swing的其他相关包 - **javax.swing.plaf**: 提供了用户界面外观和感觉的抽象类,允许实现不同的UI风格。 - **javax.swing.plaf.basic**: 基础UI实现,为...

    good swing

    - `javax.swing.Box`:用于布局的特殊容器。 - `javax.swing.JComponent`:大多数 Swing 组件的超类。 #### Swing 的支持包 Swing 包含在 JFC(Java Foundation Classes)中,该集合包括多个子包,每个子包都提供...

    Java教程编程中国\\JAVA教程 第七讲 Swing用户界面设计

    └── javax.swing.Box └── javax.swing.JComponent ``` #### 四、Swing的包结构 Swing包含多个包,每个包负责特定的功能: - `com.sun.swing.plaf.motif`:包含了实现Motif界面样式的用户界面代理类。 - `...

    用JAVA的swing来实现计算器的界面

    在Java编程语言中,Swing库提供了一组丰富的组件,用于构建桌面应用程序的...通过Box布局的灵活性或多种布局的组合,可以创建出不同风格和功能的计算器界面。无论选择哪种方法,都能提升开发者的Swing应用设计能力。

    基于Java Swing的推箱子游戏

    这是一个基于Java Swing的推箱子游戏。游戏界面由一个名为...游戏使用Block类表示方块,使用Box类表示箱子和迷宫的布局。游戏的绘制通过重写paintComponent方法实现。运行程序后,即可显示出推箱子游戏的界面。

    Javaswing登录页面的实现

    import javax.swing.Box; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; ...

    java 如何使用BoxLayout布局管理器

    在Java Swing中,布局管理器是负责控制组件在容器中排列和放置的关键工具。Box Layout是其中的一种布局管理器,它允许开发者按照线性顺序(水平或垂直)来组织组件。本篇文章将深入探讨如何在Java中有效地使用...

    java swing 如何自动定位尾部

    在Swing中,自动定位尾部可能指的是在组件或布局管理器中让某个元素始终保持在窗口的底部。在许多情况下,这在设计对话框或者聊天应用时非常有用,比如在聊天窗口中保持消息输入框始终位于屏幕的最下方。 在Swing中...

Global site tag (gtag.js) - Google Analytics