20200902 QQ1017871939 AWT容器展示包含(布局管理器样式)

tech2022-08-02  125

在设置窗口之前,先说明java中像素的定位点,我们屏幕左上角为(0,0),x往右边为正,y向下为正,这和我们平常的数学y轴往下为负不一样。就简单来说吧,只要你设置都为整数就是在我们屏幕里面,我们能看到的。一方为负数就看不到。

实例一:基本窗口显示

实例一代码:

package com.uplooking.javase.ch17; import java.awt.Color; import java.awt.Frame; public class MyFranmeTest { public static void main(String[] args) { Frame frame =new Frame(); //设置窗体的大小,单位 像素 frame.setSize(600,400); //设置标题 frame.setTitle("我的第一个java窗体"); //设置不能改变大小:就是你不能用鼠标拉伸他 frame.setResizable(false); //设置背景颜色 Color c1 =new Color(100,50,99); frame.setBackground(c1); //设置一下位置 frame.setLocation(300,300); //设置可见性,默认不可见:如果不设置可见你就看不见效果图 frame.setVisible(true); } }

实例二:显示多个不同窗口颜色

思路:有的同学觉得复制粘贴4个对吧?这又麻烦又费力。继承Frame

实例二代码:

package com.uplooking.javase.ch17; import java.awt.Color; import java.awt.Frame; public class MyFranmeTest2 extends Frame { //继承Frame类 //把改写的参数当做形参写在构造器内 public MyFranmeTest2(int x,int y,int width,int height,String title,Color c) { //调用父类的构造器 super(title); this.setBounds( x, y,width,height); this.setBackground(c); this.setResizable(false); //这个设置必须在最后 this.setVisible(true); } public static void main(String[] args) { int x =200,y=200; MyFranmeTest2 m1 =new MyFranmeTest2(x,y,300,300,"第一个窗口",Color.RED); MyFranmeTest2 m2 =new MyFranmeTest2(x+300,y,300,300,"第二个窗口",Color.green); MyFranmeTest2 m3 =new MyFranmeTest2(x,y+300,300,300,"第三个窗口",Color.black); MyFranmeTest2 m4 =new MyFranmeTest2(x+300,y+300,300,300,"第四个窗口",Color.BLUE); } }

Panel代码:

package com.uplooking.javase.ch17; import java.awt.Button; import java.awt.Color; import java.awt.Frame; import java.awt.LayoutManager; import java.awt.Panel; public class PanelTest1 { public static void main(String[] args) { Frame f1 =new Frame("面板类测试"); f1.setBounds(300,200,700,450); //布局管理器 //LayoutManager //重新设置Frame布局管理器为null,我要自己摆放,不需要布局管理器帮我摆放 //面板类 Panel p1 =new Panel(); f1.setLayout(null); //按钮 Button btn1 =new Button("Login"); btn1.setSize(100,60); btn1.setLocation(100,100); //把按钮加入到面板中 p1.add(btn1); p1.setSize(300,300); //面板所在的位置 p1.setLocation(50,50); p1.setBackground(Color.RED); //把面板放入 f1.add(p1); //设置可见 f1.setVisible(true); } }

这里我们为什么按钮不设置中文呢,设置中文会出现乱码问题,是因为内部操作系统不兼容,反正以后开发都不会用这种开发。

FlowLayout布局管理器

拉长之后

FlowLayout布局管理器代码:

package com.uplooking.javase.ch17; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.LayoutManager; public class FlowLayoutTest { public static void main(String[] args) { Frame f1 =new Frame("布局管理器测试1"); //设置窗体的布局管理器为流式布局 f1.setLayout(new FlowLayout(FlowLayout.LEFT,10,20)); //放100个按钮 for (int i = 0; i <100; i++) { f1.add(new Button("button"+i)); } f1.setBounds(300,250,600,500); f1.setVisible(true); } }

BorderLayout 边框布局管理器

BorderLayout 边框布局管理器代码:

package com.uplooking.javase.ch17; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Frame; public class BorderLayoutTest { public static void main(String[] args) { Frame f1 =new Frame("布局管理器演示:边框布局管理器"); //边框布局,50,50是彼此之间左右,上下的间距 f1.setLayout(new BorderLayout(50,50)); f1.add(new Button("submit"),BorderLayout.EAST); f1.add(new Button("submit"),BorderLayout.WEST); f1.add(new Button("submit"),BorderLayout.NORTH); f1.add(new Button("submit"),BorderLayout.SOUTH); f1.add(new Button("submit"),BorderLayout.CENTER); f1.setBounds(200,30,900,700); f1.setVisible(true); } }

GridLayout 网格布局管理器

GridLayout 网格布局管理器代码:

package com.uplooking.javase.ch17; import java.awt.Button; import java.awt.Frame; import java.awt.GridLayout; public class GridLayouTest { public static void main(String[] args) { Frame f1 =new Frame("布局管理器演示:网格布局管理器"); //格式布局 5,5 表示5行5列 如果超出5*5=25个 多的少的都不要了,主要是以行为主,行变列变,列变行不变 f1.setLayout(new GridLayout(5,5,10,20)); for (int i = 0; i < 30; i++) { f1.add(new Button("button"+i)); } f1.setBounds(200,30,900,700); f1.setVisible(true); } }

最新回复(0)