2021-08-05

Java学习系列之GUI布局练习
本次要求绘制几个板块,布局如下所示
在这里插入图片描述
对上述结构分析可以知道,总体上有一个矩形构成,矩形分为上下两部分。可以采用GirdLayout实现2行1列的布局。
对上下两部分分开进行分析,对上面部分的分析如下,上面可以分为两部分,当然这两部分可以由另个面板来实现,具体的布置可以布置在面板上。再回到布置上,大的来说由两侧的和中间构成,对于两侧可以使用BorderLayout实现,分别为BorderLayout.EAST和BorderLayout.WEST这两个可以实现,对于中间部分,可以居中放置一个penal,在penal上实现2行1列的布局,使用的关键字仍然为GirdLayout。到此即可实现上面的布置,
对于下半部分的布局,左右两侧的实现可以同上,中间部分的布局参数发生变化,改为2行2列的即可。
代码实现如下:

    package com.company;

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

public class GUI03 {
    public static void main(String[] args) {
        /*
        1.设置Frame的基本参数
         */
        Frame frame=new Frame("GUI界面练习");
        frame.setVisible(true);
        frame.setLocation(200,200);
        frame.setSize(800,800);
        frame.setBackground(new Color(2,2,2));
        //2.实现上下两部分的分割,2行1列
        frame.setLayout(new GridLayout(2,1));
        //3.设置Panel的基本参数
        Panel p1=new Panel(new BorderLayout());
        Panel p2=new Panel(new GridLayout(2,2));
        Panel p3=new Panel(new BorderLayout());
        Panel p4=new Panel(new GridLayout(2,2));
        //4.添加操作面板
        frame.add(p1);
        frame.add(p3);
        //5.先将P2添加到P1的中间位置,剩余的两边再添加按钮到操作面板上
        p1.add(p2,BorderLayout.CENTER);//添加到中间位置
        p1.add(new Button("Button3"),BorderLayout.WEST);
        p1.add(new Button(("Button4")),BorderLayout.EAST);
        p2.add(new Button("Button1"));
        p2.add(new Button("Button2"));

        //6.实现下半部分的布局,仍然使用两个penal来实现
        p3.add(p4,BorderLayout.CENTER);
        p3.add(new Button("Button5"),BorderLayout.EAST);
        p3.add(new Button("Button6"),BorderLayout.WEST);
        //7.将p4添加到p3面板上,实现居中操作

        //8.对p4添加按钮
        for (int i = 7; i <=10; i++) {
            p4.add(new Button("Button"+i));
        }
        //9.监听
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

效果如下:
在这里插入图片描述
总体上完成了布局,吐槽一句,这种方法出的有点丑
每段都有注释

这个数据可以使用Python进行解析和处理。可以按照以下步骤进行: 1. 将数据分割成每个数据项。 ``` data_items = data.split(',') ``` 2. 对于每个数据项,将其按#分割成四个小项,并存储到一个列表中。 ``` data_list = [] for item in data_items: item_list = item.split('#') data_list.append(item_list) ``` 3. 对于每个小项,进行相应的类型转换。 ``` for item in data_list: item[0] = int(item[0]) # 题号转换为整数 item[1] = datetime.datetime.strptime(item[1], '%Y-%m-%d %H:%M:%S') # 时间转换为datetime类型 if item[2] != '': # 操作类型转换为整数 item[2] = int(item[2]) item[3] = str(item[3]) # 科目转换为字符串类型 ``` 4. 可以按照需要对数据进行进一步处理,如按照题号、时间等进行排序、筛选等操作。 完整的Python代码如下: ``` import datetime data = '''1#2021-05-18 14:31:55##初级会计实务,2#2021-05-18 14:31:57#12#初级会计实务,2#2021-05-18 14:32:08##初级会计实务,3#2021-05-18 14:32:09#12#初级会计实务,4#2021-05-18 14:32:34#12#初级会计实务,4#2021-05-18 14:32:45##初级会计实务,5#2021-05-18 14:32:46#12#初级会计实务,5#2021-05-18 14:32:57##初级会计实务,6#2021-05-18 14:33:00#12#初级会计实务,7#2021-05-18 14:33:44#12#初级会计实务,7#2021-05-18 14:34:42##初级会计实务,8#2021-05-18 14:34:43#12''' # 将数据分割成每个数据项 data_items = data.split(',') # 对于每个数据项,将其按#分割成四个小项,并存储到一个列表中 data_list = [] for item in data_items: item_list = item.split('#') data_list.append(item_list) # 对于每个小项,进行相应的类型转换 for item in data_list: item[0] = int(item[0]) # 题号转换为整数 item[1] = datetime.datetime.strptime(item[1], '%Y-%m-%d %H:%M:%S') # 时间转换为datetime类型 if item[2] != '': # 操作类型转换为整数 item[2] = int(item[2]) item[3] = str(item[3]) # 科目转换为字符串类型 print(data_list) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值