java窗口布局_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来进行添加

780c5734c4deb66c99dd3adbdfab8337.png

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);

}

}

751c6826a2e5f49d317a6fb9ae3f3dae.png

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);

}

}

73a2d4ccb1978b8f65d2bc7029f629ae.png

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);

}

}

982b475a8a1ff00721ceb4b2bdfdf750.png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值