Java高级编程-- 9.2知识点

tech2024-11-27  9

CUI 图形用户接口

swing组件继承关系

Swing顶级容器 JFrame、JDialog、JApplet

1、JFrame类 实现窗口基本功能

例 :

import javax.swing.JFrame; import javax.swing.SwingUtilities; public class JframeTest { public static void creatAndShowGUI() { //创建并设置JFrame容器窗口 JFrame jframe=new JFrame(“jFrameTest”); //设置关闭窗口的默认操作 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗口尺寸 jframe.setSize(500,400); //展示JFrame容器窗口 jframe.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub SwingUtilities.invokeLater(JframeTest::creatAndShowGUI); } }

2、JDialog 表示对话框窗口

import javax.swing.JFrame; import javax.swing.SwingUtilities; public class JframeTest1{ public static void creatAndShowGUI1() { //创建并设置JFrame容器窗口 JFrame jframe=new JFrame(“jFrameTest”); //设置关闭窗口的默认操作 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗口尺寸 jframe.setSize(500,400); //展示JFrame容器窗口 jframe.setVisible(true); JDialog jd=new JDialog(frame,“JDialog对话框”,true); jd.setDefaultCloseOperation(JDialog.HIDE ON CLOSE); jd.setSize(200,100); jd.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub SwingUtilities.invokeLater(JframeTest1::creatAndShowGUI1); }

}

布局管理器

Java有6种布局管理器,AWT提供了5种:

FlowLayout BorderLayout GridLayout GridBagLayout CradLayout Swing还提供了一种: BoxLayout

1、FlowLayout 流式布局

顾名思义,组件像水流一样,从第一行开始,从左向右依次排列,碰到边界时转到下一行继续。

三个构造函数:

FlowLayout() //使用默认参数 FlowLayout(int align) //设置对齐方式 FlowLayout(int align,int hgap,int vgap) //设置对齐方式、水平间距、垂直间距 align是FlowLayout类的常量,比如:FlowLayout.LEFT,FlowLayout.CENTER

2、BorderLayout 边界布局

将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置一个组件。 2个构造函数:

BorderLayout() //使用默认参数 BorderLayout(int hgap,int vgap) //设置水平间距、垂直间距 放置组件时需指定位置:

container.add(Component comp, Borderlayout.SOUTH); //第二个参数是BorderLayout类的常量,指定组件位置 container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间 一共5个位置,一个位置最多放1个组件。

当然,可以在一个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。也可以一个都不放。

3、GridLayout 网格布局

将容器划分为指定行数、列数的网格,每个格子的尺寸都相同,一个格子中放置一个组件,适合组件大小差不多的,比如放置计算器的按钮。

从左往右、从上往下依次放置。 2个构造函数:

BorderLayout(int rows,int cols) //设置行数、列数 BorderLayout(int rows,int cols,int hgap,int vgap) //设置行数、列数、水平间距、垂直间距

4、绝对布局

绝对布局,就是可以硬性指定组件在容器中的位置和大小,使用绝对坐标来指定组件的位置与大小。 步骤如下: (1)使用Container.setLayout(null)方法取消布局管理器。 (2)使用Component.setBounds()方法设置每个组件的大小与位置。

实现代码

import javax.swing.JButton; import javax.swing.JFrame;

public class AbosoluteTest extends JFrame{

public static void main(String[] args) { // TODO Auto-generated method stub AbosoluteTest at=new AbosoluteTest(); at.initGUI(); }

public void initGUI() { this.setTitle(“Abosolute frame”); this.setVisible(true); this.setSize(300,200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置绝对布局 this.setLayout(null); JButton jb=new JButton(“第一个按钮”); jb.setBounds(10,20,200,20); this.add(jb); JButton jb2=new JButton(“第二个按钮”); jb2.setBounds(30,50,200,20); this.add(jb2); } }

最新回复(0)