Java基础之创建窗口——使用SpringLayout管理器(TrySpringLayout)
2013-12-09 23:18
471 查看
控制台程序。
可以把JFrame对象aWindow的内容面板的布局管理器设置为javax.swing.SpringLayout管理器。
SpringLayout类定义的布局管理器根据javax.swing.Spring对象定义的一组约束,决定容器中每个组件的位置和大小。在使用SpringLayout管理器的容器中,每个组件都有与之关联的SpringLayout.Constrains对象,Constrains对象定义了组件的4条边的位置。在访问组件对象关联的SpringLayout.Constrains对象之前,必须先把组件添加到容器中。
SpringLayout管理器非常灵活,如果对组件设置了合适的约束,就可以完成许多其他布局管理器的工作。
可以把JFrame对象aWindow的内容面板的布局管理器设置为javax.swing.SpringLayout管理器。
SpringLayout类定义的布局管理器根据javax.swing.Spring对象定义的一组约束,决定容器中每个组件的位置和大小。在使用SpringLayout管理器的容器中,每个组件都有与之关联的SpringLayout.Constrains对象,Constrains对象定义了组件的4条边的位置。在访问组件对象关联的SpringLayout.Constrains对象之前,必须先把组件添加到容器中。
import javax.swing.*; import java.awt.*; public class TrySpringLayout { 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); SpringLayout layout = new SpringLayout(); // Create a layout manager Container content = aWindow.getContentPane(); // Get the content pane content.setLayout(layout); // Set the container layout mgr JButton[] buttons = new JButton[6]; // Array to store buttons SpringLayout.Constraints constr = null; for(int i = 0; i < buttons.length; ++i) { buttons[i] = new JButton("Press " + (i+1)); content.add(buttons[i]); // Add a Button to content pane } Spring xSpring = Spring.constant(5,15,25); // x constraint for first button Spring ySpring = Spring.constant(10,30, 50); // y constraint for first button // Connect x,y for first button to left and top of container by springs constr = layout.getConstraints(buttons[0]); constr.setX(xSpring); constr.setY(ySpring); // Hook buttons together with springs for(int i = 1 ; i< buttons.length ; ++i) { constr = layout.getConstraints(buttons[i]); layout.putConstraint(SpringLayout.WEST, buttons[i], xSpring,SpringLayout.EAST, buttons[i-1]); layout.putConstraint(SpringLayout.NORTH, buttons[i], ySpring,SpringLayout.SOUTH, buttons[i-1]); } // Uncomment the following code to constrain the content pane /* SpringLayout.Constraints constraint = layout.getConstraints(content); constraint.setConstraint(SpringLayout.EAST, Spring.sum(constr.getConstraint(SpringLayout.EAST), Spring.constant(15))); constraint.setConstraint(SpringLayout.SOUTH, Spring.sum(constr.getConstraint(SpringLayout.SOUTH), Spring.constant(10))); aWindow.pack(); */ aWindow.setVisible(true); // Display the window } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createWindow(); } }); } }
SpringLayout管理器非常灵活,如果对组件设置了合适的约束,就可以完成许多其他布局管理器的工作。
相关文章推荐
- Java基础之创建窗口——使用边界布局管理器(TryBorderLayout)
- Java基础之创建窗口——使用流布局管理器(TryFlowLayout)
- Java基础之创建窗口——使用卡片布局管理器(TryCardLayout)
- Java基础之创建窗口——使用网格布局管理器(TryGridLayout)
- Java基础之创建窗口——使用BoxLayout管理器(TryBoxLayout4)
- Java基础之创建窗口——使用GridBagLayout管理器(TryGridBagLayout)
- Java基础之创建窗口——创建应用程序窗口(TryWindow)
- Java基础之泛型——使用泛型链表类型(TryGenericLinkedList)
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- 3.Java基础:String对象的创建和使用
- Java基础之一组有用的类——使用二叉树搜索算法搜索某个作者(TryBinarySearch)
- Spring Boot 使用Java代码创建Bean并注册到Spring中
- Java基础之在窗口中绘图——利用多态性使用鼠标自由绘图(Sketcher 7 with a crosshair cursor)
- java线程基础巩固---Daemon线程的创建以及使用场景分析
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- Java零基础:一步步教你如何使用eclipse创建项目及编写小程序实例
- 使用JavaConfig方式-Spring 基础学习
- 安卓学习之--使用Java代码创建Layout--实例
- Qt基础——让使用Designer创建的UI也能自动适应窗口大小
- Qt基础——让使用Designer创建的UI也能自动适应窗口大小