GUI布局:边界布局、流式布局、网格布局、卡片布局

2024-06-23 18:58

本文主要是介绍GUI布局:边界布局、流式布局、网格布局、卡片布局,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

边界布局


package guiTest;
//JFrame默认的是边界布局BorderLayout
import java.awt.BorderLayout;import javax.swing.JButton;
import javax.swing.JFrame;public class BorderLayoutDemo {public static void main(String[] args) {JFrame f = new JFrame("边界布局BorderLayout");//JFrame的默认LayoutManager为BorderLayout//	f.setLayout(new BorderLayout());//可以不写,默认的就是流式布局JButton btn =  new JButton("北");f.add(btn,BorderLayout.NORTH);btn=new JButton("南");f.add(btn,BorderLayout.SOUTH);btn=new JButton("东");f.add(btn,BorderLayout.EAST);btn=new JButton("西");f.add(btn,BorderLayout.WEST);btn=new JButton("中");f.add(btn,BorderLayout.CENTER);f.pack();//也可以用f.setSize(222,222);来进行设置f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

流式布局



package guiTest;import java.awt.FlowLayout;import javax.swing.JButton;
import javax.swing.JFrame;public class FlowLayoutDemo {public static void main(String[] args) {// TODO Auto-generated method stubJFrame f = new JFrame("流式布局FlowLayout");f.setLayout(new FlowLayout());for(int i=0;i<7;i++){JButton btn=new JButton("Button"+i);f.add(btn);}f.setSize(300,250);//f.pack();默认边框设置宽度和长度刚刚好的样子f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}


网格布局


<pre name="code" class="java">package guiTest;import java.awt.GridLayout;import javax.swing.JButton;
import javax.swing.JFrame;public class GirdLayoutDemo {public static void main(String[] args) {JFrame f = new JFrame("网格布局GirdLayout");//设置f的布局管理器为3行3列的GirdLayout组件间水平与垂直间距为5f.setLayout(new GridLayout(3,3,5,5));for(int i=1;i<10;++i){JButton btn = new JButton(String.valueOf(i));f.add(btn);}f.pack();f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

 

卡片布局


<pre name="code" class="java">package guiTest;import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;public class CardLayoutDemo {private static JPanel p;public static void main(String[] args) {JFrame f = new JFrame("卡片布局CardLayout");p=new JPanel();//设置p的布局管理器为卡片布局CardLayoutp.setLayout(new CardLayout());//新建两个JPanelJPanel p1 = new JPanel();JPanel p2 = new JPanel();JLabel lb = new JLabel("第一个面板");p1.add(lb);//面板里面加标签lb=new JLabel("第二个面板");p2.add(lb);//面板里面加标签//将新建的两个JPanel面板添加到p中p.add(p1,"first");p.add(p2,"second");//设置默认显示first所对应的JPanel p1((CardLayout)p.getLayout()).show(p,"first");JButton btn = new JButton("改变面板");btn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub//当点击'改变面板'时,显示second对应的JPanel p2((CardLayout)p.getLayout()).show(p,"second");}});f.add(btn,BorderLayout.NORTH);f.add(p,BorderLayout.CENTER);f.setSize(400,150);//f.pack();f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

 



这篇关于GUI布局:边界布局、流式布局、网格布局、卡片布局的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088001

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

vue, 左右布局宽,可拖动改变

1:建立一个draggableMixin.js  混入的方式使用 2:代码如下draggableMixin.js  export default {data() {return {leftWidth: 330,isDragging: false,startX: 0,startWidth: 0,};},methods: {startDragging(e) {this.isDragging = tr

flex布局学习笔记(flex布局教程)

前端笔试⾯试经常会问到:不定宽⾼如何⽔平垂直居中。最简单的实现⽅法就是flex布局,⽗元素加上如下代码即 可: display: flex; justify-content: center; align-items :center; 。下⾯详细介绍下flex布局吧。   2009年,W3C提出了 Flex布局,可以简便⼂完整⼂响应式地实现各种页⾯布局。⽬前已得到了所有浏览器的⽀持,这意味着,现

Flex 布局教程:语法篇

网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 20

【Qt6.3 基础教程 17】 Qt布局管理详解:创建直观和响应式UI界面

文章目录 前言布局管理的基础为什么需要布局管理器? 盒布局:水平和垂直排列小部件示例:创建水平盒布局 栅格布局:在网格中对齐小部件示例:创建栅格布局 表单布局:为表单创建标签和字段示例:创建表单布局 调整空间和伸缩性示例:增加弹性空间 总结 前言 当您开始使用Qt设计用户界面(UI)时,理解布局管理是至关重要的。布局管理不仅关系到UI的外观,更直接影响用户交互的体验。本篇博

CSS中的表格专有属性:提升表格布局与样式的灵活性

CSS为表格提供了一系列专有属性,这些属性使得开发者能够对表格的布局和样式进行精细控制。在本文中,我们将介绍几个关键的CSS表格属性:table-layout、border-spacing、border-collapse 和 empty-cells,以及它们如何影响表格的显示效果。 1. table-layout table-layout属性定义了表格的布局算法,主要有两个值: auto:浏

Bootstrap 5 网格系统

Bootstrap 5 网格系统 Bootstrap 5 是目前最流行的前端框架之一,它提供了一套强大的网格系统,帮助开发者快速构建响应式布局。本文将详细介绍 Bootstrap 5 的网格系统,包括其工作原理、使用方法以及最佳实践。 什么是 Bootstrap 网格系统? Bootstrap 网格系统是一种基于 Flexbox 的布局方法,它允许开发者将页面内容分为多列,并且可以轻松地控制

Unity Meta Quest 开发:关闭 MR 应用的安全边界

社区链接: SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 📕教程说明 这期教程我将介绍如何在应用中关闭 Quest 系统的安全边界。 视频讲解: https://www.bilibili.com/video/BV1Gm42157Zi 在 Unity 中导入 Meta XR SDK,进行环境配置后,打开 Assets > Plugins > An

C#界面动态布局 界面控件随着界面大小尺寸变化而变化

要想写一个漂亮的界面,光靠利用Anchor和Dock属性是远远不够的,我们需要用到相对布局,就是不管窗口大小怎么变化,控件相对父控件的相对位置保持不变。可惜c#里没有提供按照百分比布局。所以只能自己再resize()事件里调整控件位置。 首先在窗体的构造函数里保存父窗体的长宽,以及每个控件的X,Y坐标的相对位置:  int count = this.Controls.Count * 2 + 2;

React AntDesign Layout组件布局刷新页面错乱闪动

大家最近在使用React AntDesign Layout组件布局后刷新页面时,页面布局错乱闪动 经过组件属性的研究才发现,设置 hasSider 为 true 就能解决上面的问题,耽搁了半天的时间,接着踩坑接着加油!!! import { Layout, theme } from 'antd';import { Outlet } from "react-router-dom"impo