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常见布局管理器总结 #### 1. BorderLayout - 边界布局管理器 边界布局管理器(`BorderLayout`)是一种非常常见的布局管理器,主要用于处理容器内组件的定位,将其分布在容器的五个基本区域:北(North)...
在Java Swing中,布局管理器是用来组织和控制窗口或组件在图形用户界面中显示的方式。它们决定了组件如何根据可用空间自动调整大小和位置。以下是几种常见的布局管理器及其特点: 1. **FlowLayout** FlowLayout是...
Java Swing 是 Java 图形用户界面(GUI)开发的一部分,它提供了丰富的组件库和布局管理机制。在Swing中,布局管理器负责决定组件在容器内的位置和大小。BoxLayout 是其中的一种布局管理器,它允许开发者按照特定的...
Java Swing 布局详解 Java Swing 是 Java 编程语言中一个功能强大且流行的图形用户界面(GUI)工具包。Swing 提供了大量的组件和布局管理器,用于构建复杂的图形用户界面。在 Swing 中,布局管理器是负责管理组件的...
Java Swing 组件 BoxLayout 布局用法示例 Java Swing 是 Java 语言中一个功能强大的图形用户界面(GUI)工具包,它提供了丰富的组件和布局管理器,可以帮助开发者快速创建复杂的图形用户界面。在 Java Swing 中,...
在Java GUI中,BoxLayoutDemo可能是一个使用BoxLayout布局管理器的示例。BoxLayout允许我们将组件沿X轴或Y轴线性排列。为了实现小黑点移动,我们可能不使用布局管理器来定位小黑点,而是直接在组件的 paintComponent...
- `Box` 提供了水平或垂直布局的容器。 4. **基本组件** - `JLabel` 显示文本或图像。 - `JButton` 交互按钮,可以触发某些动作。 - `JCheckBox` 和 `JRadioButton` 分别用于多选和单选选项。 - `JList` 和 `...
Canvas3D是Java3D的主要显示组件,可以将其添加到Swing的布局中。 3. **3D形体**: 在示例中,各种3D形体被添加到场景中,可能包括Box(立方体)、Sphere(球体)和其他基本几何形状。这些形体可以通过Java3D的...
1. **创建Box Layout**: 你可以通过调用`Box.createHorizontalBox()`或`Box.createVerticalBox()`来创建一个使用盒子布局的容器。例如: ```java Box box = Box.createHorizontalBox(); // 创建一个水平布局的Box ...
Swing组件的使用涉及布局管理、事件处理、模型-视图-控制器的交互等多个方面。开发者可以通过添加监听器、设置属性、自定义模型等方式,灵活地定制用户界面的行为和外观。 总的来说,Swing用户界面设计提供了一个...
Java 编程使用箱式布局管理器示例【基于 Swing 组件】 Java 编程使用箱式布局管理器是指在 Java 编程中使用箱式布局管理器来布局组件,使得界面更加美观和易用。在本文中,我们将通过一个示例来介绍如何使用箱式...
- javax.swing.Box - javax.swing.JComponent ``` ### Swing的其他相关包 - **javax.swing.plaf**: 提供了用户界面外观和感觉的抽象类,允许实现不同的UI风格。 - **javax.swing.plaf.basic**: 基础UI实现,为...
- `javax.swing.Box`:用于布局的特殊容器。 - `javax.swing.JComponent`:大多数 Swing 组件的超类。 #### Swing 的支持包 Swing 包含在 JFC(Java Foundation Classes)中,该集合包括多个子包,每个子包都提供...
└── javax.swing.Box └── javax.swing.JComponent ``` #### 四、Swing的包结构 Swing包含多个包,每个包负责特定的功能: - `com.sun.swing.plaf.motif`:包含了实现Motif界面样式的用户界面代理类。 - `...
在Java编程语言中,Swing库提供了一组丰富的组件,用于构建桌面应用程序的...通过Box布局的灵活性或多种布局的组合,可以创建出不同风格和功能的计算器界面。无论选择哪种方法,都能提升开发者的Swing应用设计能力。
这是一个基于Java Swing的推箱子游戏。游戏界面由一个名为...游戏使用Block类表示方块,使用Box类表示箱子和迷宫的布局。游戏的绘制通过重写paintComponent方法实现。运行程序后,即可显示出推箱子游戏的界面。
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 Swing中,布局管理器是负责控制组件在容器中排列和放置的关键工具。Box Layout是其中的一种布局管理器,它允许开发者按照线性顺序(水平或垂直)来组织组件。本篇文章将深入探讨如何在Java中有效地使用...
在Swing中,自动定位尾部可能指的是在组件或布局管理器中让某个元素始终保持在窗口的底部。在许多情况下,这在设计对话框或者聊天应用时非常有用,比如在聊天窗口中保持消息输入框始终位于屏幕的最下方。 在Swing中...