Frame-Pannel-Button综合

简介: Frame-Pannel-Button综合

1、Frame已经介绍过,不懂可以参考 博客-Frame

2、Pannel:用在Frame中的,类似一种面板放在Frame框架中,使用时需要配合Frame

因为生成的Frame框不能X掉,写下面这个就可以把生成的界面X掉,不至于强行停止程序

frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
package 狂神说__AWT;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

//面板
public class TestPannel {
    public static void main(String[] args) {
        Frame frame=new Frame();
        Panel panel=new Panel();
        frame.setLayout(null);
        //框架的坐标大小颜色
        frame.setBounds(300,300,400,400);
        frame.setBackground(new Color(133, 240, 192));
        //在frame框架中设置面板
        panel.setBounds(100,100,100,100);
        panel.setBackground(new Color(255, 18, 30));
        //框架中加入面板
        frame.add(panel);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

3、Button按钮有三种类型:
(1)FlowLayout 流式布局,指定按钮在左边、右边或者中间

package 狂神说__AWT;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

//Layout布局
public class TestFlowLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();

        frame.setVisible(true);
        frame.setBounds(200,200,400,400);
        //按钮
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        //流式布局
        //frame.setLayout(new FlowLayout()); //中心
        //frame.setLayout(new FlowLayout(FlowLayout.LEFT)); //左边
        frame.setLayout(new FlowLayout(FlowLayout.RIGHT)); //左边

        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

(2)BorderLayout 东西南北布局

package 狂神说__AWT;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestGridLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setBounds(200,200,400,400);
        frame.setVisible(true);
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        Button button4 = new Button("button4");
        Button button5 = new Button("button5");
        Button button6 = new Button("button6");
        //表格布局
        frame.setLayout(new GridLayout(3,2));//三行两列
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.add(button4);
        frame.add(button5);
        frame.add(button6);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

综合:用布局如下的界面:

package 狂神说__AWT;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class FrameComprehensive {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Panel panel1 = new Panel(new BorderLayout());
        Panel panel2 =new Panel(new GridLayout(2,1));//这个面板分成两行一列
        Panel panel3=new Panel(new BorderLayout());
        Panel panel4=new Panel(new GridLayout(2,2));//这个面板分成两行两列
        frame.setVisible(true);
        frame.setBounds(200,200,400,400);
        frame.setLayout(new GridLayout(2,1));
        panel1.add(new Button("button1"),BorderLayout.WEST);
        panel1.add(new Button("button3"),BorderLayout.EAST);
        panel2.add(new Button("button5"));
        panel2.add(new Button("button6"));
        panel1.add(panel2,BorderLayout.CENTER);
        panel3.add(new Button("button2"),BorderLayout.WEST);
        panel3.add(new Button("button4"),BorderLayout.EAST);
        for (int i = 7; i <=10; i++) {
            panel4.add(new Button("button"+i));
        }
        panel3.add(panel4,BorderLayout.CENTER);
        frame.add(panel1);
        frame.add(panel3);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

相关文章
|
6月前
有关element UI el-table 跟el-dialog搭配使用出现的问题,背景问题,穿透问题
有关element UI el-table 跟el-dialog搭配使用出现的问题,背景问题,穿透问题
247 0
layui嵌套弹出模态框的Blocked a frame with origin null from的解决方案
layui嵌套弹出模态框的Blocked a frame with origin null from的解决方案
176 0
|
容器
layui框架实战案例(23):在layui-tab-content中layui-progress-bar在html拼接中不显示lay-percent的解决方案
layui框架实战案例(23):在layui-tab-content中layui-progress-bar在html拼接中不显示lay-percent的解决方案
341 0
|
1月前
|
前端开发 JavaScript
分析比较 opacity: 0、visibility: hidden、display: none 优劣和适用场景
在CSS中,`opacity: 0`、`visibility: hidden` 和 `display: none` 都能隐藏元素,但各有千秋。`opacity: 0` 使元素透明但仍占布局空间;`visibility: hidden` 同样保留空间但使元素完全不可见;而 `display: none` 则彻底移除元素及其所占空间。根据具体需求选择合适方式可优化页面表现与性能。
element-ui里的el-table在grid布局下切换数据有滚动条时不断增加?
element-ui里的el-table在grid布局下切换数据有滚动条时不断增加?
83 0
|
移动开发 JavaScript 前端开发
基于el-slider自定义range组件实践
日常工作中经常使用范围选择组件,例如进度条、日期范围选择等组件,常见组件库中经常使用的都是使用的圆形滑块形状,项目中有需要根据自定义去实现一个range组件,以下是基于element的el-slider组件进行改良封装的一个range组件。
412 0
Winform控件优化之双层Form利用Opacity实现Layer遮罩层
对于完全由自己控制实现的桌面应用来说,则可以想办法实现遮罩整个窗体(窗口)的Layer层。下面介绍在Winform中利用Form做遮罩层的实现,推荐的还是第二种方式:双Form的遮罩层....
266 0
Winform控件优化之双层Form利用Opacity实现Layer遮罩层
ViewPager2实现内部Item的动态滚动
最近接到了一个需求,大概类似如下图所示的一个样式(省略了部分细节,不影响大概)。
338 0
从0开发游戏引擎之2D基础组件的实现(Image;Label;Button)
从0开发游戏引擎之2D基础组件的实现(Image;Label;Button)
|
Android开发
NavigationView中,动态增加item以及menu
NavigationView中,动态增加item以及menu
354 0