gui设计图形用户界面举例,gui图形用户界面设计

  gui设计图形用户界面举例,gui图形用户界面设计

  布局管理器:

  组件在容器中的位置和大小是由布局管理器决定的,每当需要调整屏幕大小时,就会使用布局管理器。Swing中有四个常用的布局管理器,分别是FlowLayout (StreamLayout Manager)、BorderLayout(Boundary Layout Manager)、GridLayout(GridLayout Manager)和GridBagLayout(Grid Package Layout Manager)。Swing容器在创建时总是使用默认的布局管理器。在程序中,可以通过调用容器对象的setLayout()方法设置布局管理器,布局管理器可以自动管理组件的布局。

  FlowLayout属于流式布局管理器,是最简单的布局管理器。在这个布局中,容器按照添加的顺序从左到右放置组件。当到达容器的边界时,组件会自动放置在下一行的开头。这些组件可以左对齐、居中(默认)或右对齐。

  WLayout的布局管理器的特点是所有组件可以像流水一样按顺序排列,不需要用户显式设置,但是灵活性比较差。如果窗体被拉伸和加宽,按钮的大小和按钮之间的间距将保持不变,但是按钮和容器边界之间的距离将会改变。您可以根据自己的经验运行以下案例代码。

  流程布局案例:

  导入javax . swing . *;导入Java . awt . *;Public类GUI_2布局管理器{ public static void main(string[]args){ jframe frame=new jframe(布局管理器);frame.setSize(600,300);//将表单中的布局管理器设置为FlowLayout (StreamLayout Manager),所有组件居中对齐,水平和垂直间距为3 frame . Set layout(New flow layout(flow layout。中心,3,3));JButton button=nullfor(int I=1;I=9;I){//Create button button=new JButton( button I);frame.add(按钮);}//设置表单大小frame.setSize(280,250);//显示组件frame . set visible(true);}}GridLayout管理器以网格的形式管理容器中组件的布局。GridLayout使用垂直线和水平线将容器分成大小相等的N行M列,每个网格中有一个组件。添加到容器中的组件首先放置在网格的第一行和第一列(左上角),然后其他组件从左到右放置在第一行的网格中。一行写满后,继续将组件从左到右放在下一行。GridLayout的管理方式与FlowLayout类似,但与FlowLayout不同的是,GridLayout管理的组件将自动占据整个网格区域。

  GridLayout布局管理器的特点是组件的相对位置不随区域的缩放而变化,但组件的大小会相应变化,组件始终占据网格的整个区域。它的缺点是总是忽略组件的最优尺寸,所有组件的宽度和高度都是一样的。

  GridLayout案例:

  导入javax . swing . *;导入Java . awt . *;Public类GUI_2布局管理器{ public static void main(string[]args){ jframe frame=new jframe(布局管理器);frame.setSize(600,300);//将表单中的布局管理器设置为GridLayout(网格格式),将表单设置为3 * 3 grid frame . Set layout(New GridLayout(3,3));JButton button=nullfor(int I=1;I=9;I){//Create button button=new JButton( button I);frame.add(按钮);}//设置表单大小frame.setSize(280,250);//显示组件frame . set visible(true);}}BorderLayout(边框布局管理器)是一种复杂的布局方法,它将表单分为东、南、西、北、中五个区域。组件可以放置在这5个区域中的任何一个。

  边界布局案例:

  导入javax . swing . *;导入Java . awt . *;公共c

  lass GUI_2布局管理器 { public static void main(String[] args) { JFrame frame=new JFrame("布局管理器"); frame.setSize(600,300); //设置窗体中的布局管理器为BorderLayout(边界布局),组件间横向、纵向间距均为5 frame.setLayout(new BorderLayout(5,5)); frame.add(new JButton("按钮1"),BorderLayout.EAST);//东 frame.add(new JButton("按钮2"),BorderLayout.SOUTH);//南 frame.add(new JButton("按钮3"),BorderLayout.NORTH);//北 frame.add(new JButton("按钮4"),BorderLayout.WEST);//西 frame.add(new JButton("按钮5"),BorderLayout.CENTER);//中 frame.setVisible(true);//显示组件 }}GridBagLayout是最灵活、最复杂的布局管理器,它与GridLayout布局管理器类似,不同之处在于GridBagLayout允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。需要注意的是,如果希望组件的大小随容器的增大而增大,必须同时设置GridBagConstraints对象的fill属性和weightx、weighty属性。

  GridBagLayout案例:

  

import javax.swing.*;import java.awt.*;public class GUI_2布局管理器 { public static void main(String[] args) { JFrame frame=new JFrame("布局管理器"); frame.setSize(600,300); //GridBagLayout布局管理器(最灵活,最复杂),需要自己设置各个按钮或文本的位置 frame.setLayout(null); Font font=new Font("仿宋",Font.BOLD,20); JLabel jl1=new JLabel("用户名:"); jl1.setBounds(10,10,160,40);//设置按钮的坐标,x,y,长,高 jl1.setFont(font);//设置统一字体,保证代码整洁、美观 JTextField jf1=new JTextField("请输入用户名:",20); jf1.setBounds(130,10,230,40); jf1.setFont(font); JLabel jl2=new JLabel("密码:"); jl2.setBounds(10,60,160,40); jl2.setFont(font); JTextField jf2=new JTextField("请输入密码:",20); jf2.setBounds(130,60,230,40); jf2.setFont(font); JButton jb1=new JButton("登录"); jb1.setBounds(40,120,100,40); jb1.setFont(font); JButton jb2=new JButton("退出"); jb2.setBounds(160,120,100,40); jb2.setFont(font); frame.add(jl1);//将这些按钮添加到窗口上 frame.add(jf1); frame.add(jl2); frame.add(jf2); frame.add(jb1); frame.add(jb2); frame.setVisible(true); }}

运用上面所讲的GridBagLayout布局管理器写一个计算机模板(没有实用功能,但外貌相似),还有更简便的方法,但这里我们使用GridBagLayout一种布局管理器实现。

 

  

import javax.swing.*;import java.awt.*;class 计算机{ public static void main(String[] args) { JFrame frame=new JFrame("计算器"); frame.setSize(320,300); frame.setLayout(null); Font font=new Font("仿宋",Font.BOLD,20); JTextField jf1=new JTextField(" ",20); jf1.setBounds(10,10,180,40); jf1.setFont(font); JButton jl1=new JButton("删除"); jl1.setBounds(190,10,110,40); jl1.setFont(font); JButton jb1=new JButton("1"); jb1.setBounds(10,50,50,40); jb1.setFont(font); JButton jb2=new JButton("2"); jb2.setBounds(70,50,50,40); jb2.setFont(font); JButton jb3=new JButton("3"); jb3.setBounds(130,50,50,40); jb3.setFont(font); JButton jb4=new JButton("+"); jb4.setBounds(190,50,50,40); jb4.setFont(font); JButton jb16=new JButton("*"); jb16.setBounds(250,50,50,40); jb16.setFont(font); JButton jb5=new JButton("4"); jb5.setBounds(10,100,50,40); jb5.setFont(font); JButton jb6=new JButton("5"); jb6.setBounds(70,100,50,40); jb6.setFont(font); JButton jb7=new JButton("6"); jb7.setBounds(130,100,50,40); jb7.setFont(font); JButton jb8=new JButton("-"); jb8.setBounds(190,100,50,40); jb8.setFont(font); JButton jb9=new JButton("7"); jb9.setBounds(10,150,50,40); jb9.setFont(font); JButton jb10=new JButton("8"); jb10.setBounds(70,150,50,40); jb10.setFont(font); JButton jb11=new JButton("9"); jb11.setBounds(130,150,50,40); jb11.setFont(font); JButton jb12=new JButton("0"); jb12.setBounds(190,150,50,40); jb12.setFont(font); JButton jb15=new JButton("/"); jb15.setBounds(250,100,50,40); jb15.setFont(font); JButton jb14=new JButton("."); jb14.setBounds(250,150,50,40); jb14.setFont(font); JButton jb13=new JButton("="); jb13.setBounds(10,200,300,40); jb13.setFont(font); frame.add(jl1); frame.add(jf1); frame.add(jb1); frame.add(jb2); frame.add(jb3); frame.add(jb4); frame.add(jb5); frame.add(jb6); frame.add(jb7); frame.add(jb8); frame.add(jb9); frame.add(jb10); frame.add(jb11); frame.add(jb12); frame.add(jb13); frame.add(jb14); frame.add(jb15); frame.add(jb16); frame.setVisible(true); }}

运行结果如下:

 

  

 

  到此这篇关于Java深入学习图形用户界面GUI之布局管理器的文章就介绍到这了,更多相关Java布局管理器内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: