博客
关于我
java-图形用户界面(GUI)之AWT编程-整体思路与代码架构
阅读量:792 次
发布时间:2023-01-27

本文共 2076 字,大约阅读时间需要 6 分钟。

1. 整体思路

任何窗口都可以被分解成一个空的容器,容器中盛放了大量的基本组件,通过设置这些基本组件的大小、位置等属性,就可以将该空的容器和基本组件组成一个整体的窗口。

具体实现思路如下:

  • 创建一个Frame顶层窗口,用于容纳整个图形用户界面。
  • 如果需要,设置顶层窗口的布局,通常使用BorderLayout或GridLayout。
  • 创建Panel容器或ScrollPane容器,用于承载其他组件。
  • 如果需要,设置容器的布局,根据需求决定是BorderLayout还是GridLayout等。
  • 向容器中添加基本组件,如按钮、文本框等。
  • 将容器依次添加到顶层窗口中。
  • 设置顶层窗口的大小,通常采用f.pack()方法,让窗口自动调整到最佳尺寸。
  • 设置窗口的位置,例如f.setLocation(int x, int y)。
  • 如果需要,可以同时设置窗口的大小和位置,使用f.setBounds(int x, int y, int width, int height)。
  • 确保窗口可见性高,调用f.setVisible(true)方法。
  • 2. 代码架构

    这里提供两种代码组织方式:

  • 直接在主方法里边创建图形用户界面
  • import java.awt.BorderLayout;import java.awt.Button;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextField;import javax.swing.JFrame;
    public class GridLayoutTest {    public static void main(String[] args) {        JFrame f = new JFrame("计算器");        Panel p1 = new Panel();        p1.add(new TextField(30));        f.add(p1, BorderLayout.NORTH);        Panel p2 = new Panel();        p2.setLayout(new GridLayout(3, 5, 4, 4));        String[] name = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "-", "*", "/"};        for (int i = 0; i < name.length; i++) {            p2.add(new Button(name[i]));        }        f.add(p2);        f.pack();        f.setVisible(true);    }}
    1. 通过init()方法创建图形用户界面
    2. import java.awt.BorderLayout;import java.awt.Button;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextField;import javax.swing JFrame;
      public class DialogTest {    JFrame f = new JFrame("计算器");    Panel p1 = new Panel();        public void init() {        p1.add(new TextField(30));        f.add(p1, BorderLayout.NORTH);        Panel p2 = new Panel();        p2.setLayout(new GridLayout(3, 5, 4, 4));        String[] name = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "-", "*", "/"};        for (int i = 0; i < name.length; i++) {            p2.add(new Button(name[i]));        }        f.add(p2);        f.pack();        f.setVisible(true);    }        public static void main(String[] args) {        new DialogTest().init();    }}

      以上两种代码组织方式都可以实现类似功能,但如果需要代码结构更清晰,建议使用第二种方式(通过init方法创建界面)。

    转载地址:http://hbryk.baihongyu.com/

    你可能感兴趣的文章
    ICLOUD储存空间要升级吗_有人像我一样需要恢复苹果手机icloud空间ios备份时 微信卡住不动了吗(已解决)...
    查看>>
    jaccard相似度_自然语言处理之文本相似度计算
    查看>>
    java 字符编码过滤器_java web中字符编码的过滤器(Filter - 1)
    查看>>
    java书籍_还搞不定Java多线程和并发编程面试题?你可能需要这一份书单!
    查看>>
    java开发区块链_用Java代码实现区块链
    查看>>
    Java指定区间返回随机数
    查看>>
    java攀枝花市房屋租售信息管理平台的设计与实现(ssm)
    查看>>
    java教学团队管理系统(ssm)
    查看>>
    java教学网站(ssm)
    查看>>
    java教学质量管理平台(ssm)
    查看>>
    java教师教学质量评估系统(ssm)
    查看>>
    java教师管理系统(ssm)
    查看>>
    java教师管理系统(ssm)
    查看>>
    java教师管理系统(ssm)
    查看>>
    java教师绩效考核过程管理系统(ssm)
    查看>>
    java教师课堂助手app(ssm)
    查看>>
    java教师课程管理与教学辅助系统(ssm)
    查看>>
    java教研室采购管理系统(ssm)
    查看>>
    java教育培训系统(ssm)
    查看>>
    java教育机构管理(ssm)
    查看>>