5.11—1

图像用户界面
1. 抽象窗口工具包(AWT)依赖于来创建图像用户界面(GUI)。
AWT包中提供了3大类:
1、容器类(container)
2、UI 组件类(UI component)
3、帮助类(layoutmanager 、 graphics 、 color)
2.JDK1.2版本后,引入新的包 Javax.swing.(轻重行)swing GUI组件在awt的基础上增加了很多功能。

Java.Awt包中的类体系结构
在这里插入图片描述

UI组件不能独立地显示出来,必须将组件放在一定的容器中才能显示出来。
在component 类中定义了AWT组件具有的一般功能如大小和位置控制,外形控制,组件的状态控制等。
AWT支持的组件(基本上UI组件):按钮、标签、文本框、文本区、复选框、单选按钮、滚动条、表格、菜单等。

在这里插入图片描述

容器

1、容器是component的子类,容器本身也是一个组件。另外具有容纳其他组件和容器的功能,通过容器来组织其他界面成分和元素。

2、容器类具有的功能是组件管理和布局管理。在组件管理中,包含的方法有add()、remove()、getcomponent()等,分别用于添加、删除组件和获得某个组件。

3、Conlainer类可直接或间接派生出两个常用容器:框架(frame)和面板(panel类)。

帮助类

1.Graphics类
2.布局管理类(layoutmanager):可调用容器类中的setlayout()方法。
3.Color(颜色)和font(字体)类。

容器类名组件—1

1.容器分为顶层容器和非顶层容器两大类。
顶层容器可以独立的窗口,不需要其他组件支持。
顶层容器的类是Windows,其重要子类是frame(框架)和dialog(对话框)。

2.非顶层容器不是独立窗口,必须位于窗口之内,
非顶层容器包括panle及scrollpane等,panel的重要子类是applet类。

布局类型

Java中的布局类型包括以下几种:
Flowlayout (流式布局)
Borderlasyout(边界布局)
Gridlayout(网格布局)
Cardlayout(卡片布局)
Boxlayout(框布局)
Gridbaglayout(网格包布局)

如何设置布局

1.每个容器(container对象)都有一个与它相关的缺省的布局管理器。

Applet的缺省布局是FlowLayout,Frame的缺省布局是BorderLayout,Panel的缺省布局是Flowlayout.

2.在没有设置新的布局前,在容器中添加组件都按照该容器的缺省布局排列。
3.可以通过setLayout()方法为容器设置新的布局。

FlowLayout 的构造函数有:

FlowLayout():生成一个默认的流式布局
FlowLayout(int alignment):可以设定每一行组件的对齐方式
FlowLayout(int alignment, int horz, int vert):可以设定组件间的水平和垂直距离。

第一节课代码:

package com.imau.gui;
import java.awt.*;
import javax.swing.*;
public class FrameDemo extends JFrame {

private JLabel label;

private JButton button;

private JButton bts[]=new JButton[16];

private JTextField field;
private void init() {
label=new JLabel("姓名");
label.setBounds(10,10,40,40);
  //label.setSize(40, 40);
  //label.setLocation(60, 10);
  //label.setHorizontalAlignment(JLabel.CENTER);
   //label.setForeground(Color.blue);
 //label.setBackground(Color.green);

button=new JButton("按钮");
button.setSize(40,40);
button.setLocation(10, 10);
  //按钮受否可点击
 //button.setEnabled(false);

for(int i=0;i<bts.length;++i)
{
 bts[i]=new JButton("按钮"+i);
}
field=new JTextField("aaaa",20);
}
 public FrameDemo() {
    init();
    
    
  
       //2.设置布局
      //空布局:添加组件的时候,组件没有大小,没有位置;创建组件时给定大小和位置
    setLayout(new FlowLayout(FlowLayout.LEFT));
    this.add(label);
    this.add(button);
    this.add(field);
  
    //add(bts[0],BorderLayout.NORTH);
    //add(bts[1],BorderLayout.EAST );
    //add(bts[2],BorderLayout.WEST);
    //add(bts[3],BorderLayout.SOUTH);
    //add(bts[4],BorderLayout.CENTER);
    
    //1.设置标题 图标 大小 位置 可见性 窗口的事件
    this.setTitle("这是一个窗口");
    this.setSize(300, 300);
    this.setLocation(400, 300);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }
   //2.用对象形式创建
   public void test() {
    JFrame frame= new JFrame();
    frame.setTitle("这是一个窗口");
    frame.setSize(300, 300);
    frame.setLocation(400, 300);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}






登陆界面(这是分割线)
package com.imau.gui;
import javax.swing.*;
import java.awt.*;
public class Login extends JFrame {

 private JLabel lname;
 private JLabel lpass;
private JTextField tname;
private JTextField tpass;
private JButton login;

private void init() {
lname=new JLabel("用户名");
lpass=new JLabel("密   码");
tname=new JTextField(14);
tpass=new JTextField(14);
login=new JButton("登录");

this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(lname);
this.add(tname);
this.add(lpass);
this.add(tpass);
this.add(login);

//1.获取屏幕大小
//2.设置为大小


 this.setResizable(false); 
  this.setTitle("QQ登录");
  this.setSize(260, 150);
   this.setLocation(400, 300);
  this.setVisible(true);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               }
public Login() {
 init();
         }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值