栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

java笔记1.09

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java笔记1.09

1. 图形化用户界面设计

java抽象窗口工具集
Abstract Window Toolkit(AWT)
java窗口类
Java Foundation Classes(JFC)Swing
和mfc一样,继承关系复杂,但是和mfc比简介多了

  1. 容器
    显示于屏幕的所有组件都必须包含在某个容器(窗体)中,容器(窗体)是可以嵌套的。
    那么肯定有一个最外层的容器(最底层的窗体)

顶层容器包括:
JFrame:标题+系统控制按钮
JApplet:小应用程序,浏览器窗口中
JWindow:不带标题和控制按钮
JDialog:对话框

2. JFrame窗口

import java.awt.*;
import javax.swing.*;
// 导入包
public class b {
    public static void main(String[] args) {
        // 新建一个窗口,几个按钮
        JFrame frame1 = new JFrame("this is title");
        JButton jb1, jb2, jb3, jb4, jb5;

        // 要对窗口进行操作,必须先获得窗口getContentPane();
        Container c = frame1.getContentPane();
        jb1 = new JButton("上");
        jb2 = new JButton("下");
        jb3 = new JButton("左");
        jb4 = new JButton("右");
        jb5 = new JButton("中");

        // 添加
        c.add(jb1, BorderLayout.NORTH);
        c.add(jb2, BorderLayout.SOUTH);
        c.add(jb3, BorderLayout.WEST);
        c.add(jb4, BorderLayout.EAST);
        c.add(jb5, BorderLayout.CENTER);
		//frame1.getContentPane().add(控件, 位置)

        // 让窗口大小自适应到合适大小,可以显示完全控件
        frame1.pack();
        frame1.setVisible(true);
    }
}

用a窗口的客户区内容,替换b窗口的客户区内容

import java.awt.*;
import javax.swing.*;

// 导入包
public class b {
    public static void main(String[] args) {
        // frame1的初始化
        JPanel frame1 = new JPanel();
        JButton button1 = new JButton("this is button");
        
        // 设置页面布局器,JPanel类型默认是FlowLayout
        frame1.setLayout(new BorderLayout());
        frame1.add(button1, BorderLayout.CENTER);

        // frame2拷贝frame1的内容
        JFrame frame2 = new JFrame("this is second frame");
        frame2.setContentPane(frame1);

        // 显示frame2
        frame2.pack();
        frame2.setVisible(true);
    }
}

3. JPanel面板
面板不能独立存在,必须添加到其他容器内部,面板可以嵌套,

		// 背景色
		JPanel.setBackground(Color.black);
        JFrame.getContentPane().setBackground(Color.black);
        
		// 窗口大小
        JFrame.setSize(500, 500);

		// 加入面板
        JFrame.getContentPane().add(JPanel, BorderLayout.NORTH);
2. 布局管理器

这个布局管理器就是帮你实现控件的自动布局,不需要你手动控制其位置,比如说窗口大小的变化…

setLayout(new 布局管理器构造方法)//更换布局管理器
CardLayout layout=new 布局管理器构造方法

1. FlowLayout布局管理器(靠向)

FlowLayout()
FlowLayout(align) //靠上靠下靠中
FlowLayout(align,hgap,vgap)//高间隔,宽间隔

int align 参数
FlowLayout.LEFT
FlowLayout.RIGHT
FlowLayout.CENTER

2. BorderLayout布局管理器(间距)

构造方法
BorderLayout()
BorderLayout(int hgap,int vgap)
BorderLayout.EAST

import java.awt.*;
import javax.swing.*;

// 导入包
public class b {
    public static void main(String[] args) {
        JFrame frame1 = new JFrame();
        Container c1 = frame1.getContentPane();

        JButton jb0 = new JButton("this is button");
        JButton jb1 = new JButton("this is button");
        JButton jb2 = new JButton("this is button");
        JButton jb3 = new JButton("this is button");

        // 设置有间隔的布局器
        c1.setLayout(new BorderLayout(100, 100));
        c1.add(jb0, BorderLayout.EAST);
        c1.add(jb1, BorderLayout.SOUTH);
        c1.add(jb2, BorderLayout.WEST);
        c1.add(jb3, BorderLayout.NORTH);

        frame1.setSize(500, 500);
        c1.setBackground(Color.yellow);
        frame1.setVisible(true);
    }
}

3. GridLayout布局管理器(长宽+间距)
它是一种类似表格的排列方式

构造方法
GridLayout
GridLayout(row,cols)
GridLayout(row,cols,hgap,vgap) // 设置几行几列,行列间隔

4. CardLayout布局管理器
有点像控件点击事件,整个窗口为一个按钮

CardLayout layout=new CardLayout();
setLayout(layout);

5. BoxLayout布局管理器
BoxLayout(container target,int axis)
垂直或者水平排列

BoxLayout(要操作的画板,画板排列方式);
所在位置:
当前布局器下的操作
BoxLayout.X_AXIS //水平
然后画板再加入frame

明天事件处理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号