Java 窗体布局

实现窗口有好种方式

一是直接在代码里面创建窗口再进行相应的添加控件

import javax.swing.*;

import java.util.concurrent.*;

public class HelloLabel{

public static void main(String[] args) throws Exception

{

JFrame frame=new JFrame("Hello Swing");

JLabel label=new JLabel("A label");

frame.add(label);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭的事件

frame.setSize(300,100);//设置大小

frame.setVisible(true);//使窗口可视

TimeUnit.SECONDS.sleep(1);//计时器,停顿一秒

label.setText("Hey! This is Different!");

}

}

二、是继承JFrame接口然后在用构造方法进行布局

import javax.swing.*;

import java.util.concurrent.*;

public class SubmitSwingProgram extends JFrame{

JLabel label;

public SubmitSwingProgram(){

super("Hello Swing");

label=new JLabel("A Label");

add(label);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(300,100);

setVisible(true);

}

static SubmitSwingProgram ssp;

public static void main(String[] args) throws Exception

{

SwingUtilities.invokeLater(new Runnable(){

public void run(){ssp=new SubmitSwingProgram();}

});

TimeUnit.SECONDS.sleep(1);

SwingUtilities.invokeLater(new Runnable(){

public void run(){

ssp.label.setText("Hey! This is Different!");

}

});

}

}

布局方式:

BorderLayout将整个区域划分为一个部分,分别四个边框区域和一个中央区域,直接利用重载add来进行添加

clip_image002

package Gui;

import javax.swing.*;

import java.awt.*;

import static net.mindview.util.SwingConsole.*;

public class BorderLayout1 extends JFrame{

public BorderLayout1(){

add(BorderLayout.NORTH,new JButton("North"));

add(BorderLayout.SOUTH,new JButton("SOUTH"));

add(BorderLayout.EAST,new JButton("EAST"));

add(BorderLayout.WEST,new JButton("WEST"));

add(BorderLayout.CENTER,new JButton("CENTER"));

}

public static void main(String[] args) {

run(new BorderLayout1(),300,250);

}

}

clip_image003

FlowLayout(流动)布局:

这个布局也是很好理解的,当你在添加控件的时候假设你当前的控件的大小超过可容纳的区域大小会自动添加到下一行当中。

package Gui;

import javax.swing.*;

import java.awt.*;

import static net.mindview.util.SwingConsole.*;

public class FlowLayout1 extends JFrame{

public FlowLayout1(){

setLayout(new FlowLayout());

for(int i=0;i<20;i++)

add(new JButton("Button "+i));

}

public static void main(String[] args) {

run(new FlowLayout1(), 300, 300);

}

}

clip_image004

GridLayotu(表格)布局:

把当前的区域划分为N*M的表格,然后每一个控制占有一个单元格

package Gui;

import javax.swing.JButton;

import javax.swing.JFrame;

import java.awt.*;

import static net.mindview.util.SwingConsole.*;

public class GridLayout1 extends JFrame{

public GridLayout1(){

setLayout(new GridLayout(7,3));

for(int i=0;i<20;i++)

add(new JButton("Button "+i));

}

public static void main(String[] args) {

run(new GridLayout1(),300,300);

}

}

clip_image005

转载于:https://www.cnblogs.com/tianyake/archive/2012/03/01/2376188.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值