黑马程序员_java GUI 三大布局使用

来源:互联网 发布:计算机三级 数据库 编辑:程序博客网 时间:2024/04/28 05:44
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

JAVA GUI编程

(一)Java GUI基本使用

概述:

我们电脑中所用到的程序大多数都是有界面的,像qq,迅雷,360等,其实java也可以做出有界面的程序。java不但可以做黑乎乎的命令行程序,而且还可以做出有界面的程序,像eclipse就是用java做的。

在早期做java界面用的是awt,毕向东老师讲的是awt,听韩顺平老师讲课的时候说swing好处很多,现在主要是用java swing

分析:

到底如何产生一个窗体呢?手册里面用到的是JFrame 类。

代码:

 

import javax.swing.JFrame; public class JavaSwingDemo{public static void main(String[] args) {JFrame jwd=new JFrame();//实例化JFrame的类jwd.setVisible(true);//设置窗体可见jwd.setSize(400,200);//设置窗体大小jwd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体可关闭} }


 

添加按钮等一系列控件代码:

 

 

import javax.swing.JButton;import javax.swing.JFrame; public class JavaSwingDemo extends JFrame{ public static void main(String[] args) {JavaSwingDemo jwd=new JavaSwingDemo();}public JavaSwingDemo(){init();}private void init() {//设置窗体属性this.setVisible(true);this.setSize(400,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//添加控件JButton jb1=new JButton("按钮1");this.add(jb1);} }


 

(二)Java GUI四大布局

 概述:

在添加控件时候发现了,添加的控件充满了整个窗口,其实java在填控件时候是有规则的,这就是人们常说的布局,Java常用的布局有三种,我这里没有写错是三种,这三种布局都不是,填写一个null就是空布局,就是没有用布局,这种布局也叫做绝对布局。

实例:

第一种:空布局

特点:也就是绝对布局,窗体内空间可以任意设置大小,位置

import javax.swing.JButton;import javax.swing.JFrame; public class JavaSwingDemo extends JFrame{ public static void main(String[] args) {JavaSwingDemo jwd=new JavaSwingDemo();}public JavaSwingDemo(){init();}private void init() {//设置窗体属性this.setVisible(true);this.setSize(400,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置空布局this.setLayout(null);//添加控件JButton jb1=new JButton("按钮1");JButton jb2=new JButton("按钮2");//设置两个控件大小jb1.setSize(100, 25);jb2.setSize(100, 25);//设置位置jb1.setLocation(0, 0);jb2.setLocation(200, 0);this.add(jb1);this.add(jb2);}}


 

第二种:流布局

特点:从做到有依次摆放空间,知道沾满一行,才转向下一行,拖动改变窗体大小可以看到流布局的效果

import java.awt.FlowLayout; import javax.swing.JButton;import javax.swing.JFrame; public class JavaSwingDemo extends JFrame{ public static void main(String[] args) {JavaSwingDemo jwd=new JavaSwingDemo();}public JavaSwingDemo(){init();}private void init() {//设置窗体属性this.setVisible(true);this.setSize(500,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLocationRelativeTo(null);//设置流布局this.setLayout(new FlowLayout());//添加控件for (int i = 0; i < 10; i++) {this.add(new JButton("按钮"+i));}}}


第三种:边界布局

特点:是容器的默认布局,把被布局的容器分割成五部分

 

import java.awt.BorderLayout;import javax.swing.JButton;import javax.swing.JFrame; public class JavaSwingDemo extends JFrame{ public static void main(String[] args) {JavaSwingDemo jwd=new JavaSwingDemo();}public JavaSwingDemo(){init();}private void init() {//设置窗体属性this.setVisible(true);this.setSize(300,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLocationRelativeTo(null);//设置流布局//添加控件this.add(BorderLayout.NORTH,new JButton("按钮1"));this.add(BorderLayout.WEST,new JButton("按钮2"));this.add(BorderLayout.SOUTH,new JButton("按钮3"));this.add(BorderLayout.EAST,new JButton("按钮4"));this.add(BorderLayout.CENTER,new JButton("按钮5"));}} 

第四种:网格布局

特点:事先画好行列,然后空间按照行列依次排放

 

import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame; public class JavaSwingDemo extends JFrame{ public static void main(String[] args) {JavaSwingDemo jwd=new JavaSwingDemo();}public JavaSwingDemo(){init();}private void init() {//设置窗体属性this.setVisible(true);this.setSize(500,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLocationRelativeTo(null);//设置流布局this.setLayout(new GridLayout(4,4,5,5));//添加控件for (int i = 0; i < 15; i++) {this.add(new JButton(""+i));} }}

 

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
0 0
原创粉丝点击