Day26
一、学习目标
1.图形界面
2.窗体
二、知识点
1.图形界面
一个图形用户界面是屏幕上的一个程序窗口,屏幕也称为桌面。
屏幕坐标系:图形用户界面使用屏幕坐标系确定窗口位置,原点位于屏幕左上角,右为X轴正向,下为Y轴正向,坐标系单位为像素。窗口:窗口由程序创建,用于程序与用户间的交互。
2.窗体
- 从应用程序开发员的角度
窗口就是图形用户界面句柄,以该句柄作为系统API的参数,就可以对窗口进行各种操作 - 从MFC程序员角度
窗口就是一个CWnd对象 - 从操作系统角度
窗口是一块普通内存块.该内存中保存了一个数据结构的信息(WNDCLASS).操作系统利用这个数据结构维护窗口状态
●窗体位置、大小与状态
(1)窗体位置Location
即决定了窗体的左上角在屏幕上的横,纵坐标(一般可直接在面板中设置)
(2)窗体大小Size
即包括Width宽,Height高,定义了窗体的初始宽度和高度;
注:在代码中设置窗体的Width,Height值,可实现在程序运行中改变窗体的大小;
最大值与最小值可以通过窗体的MaximumSize和MinimumSize两个属性设置;
(3)窗体状态WindowState
即窗体正常状态(Normal)
窗体最小化状态(Minimized)
窗体最大化状态(Maximized)
●窗体的字体、颜色与外形
(1)Font字体属性
即指定显示的文本的字体,包括字体的Name,Size等;
(2)ForeColor窗体前景色
即指定的窗体的文本色;
(3)BackColor窗体的背景色
即指定的窗体底色;
(4)BorderStyle窗体边框
即指定窗体边框样式;
1.无边框——None;
2.固定三维边框——Fixed3D;
3.固定对话框样式的粗边框——FixedDialog
4.固定单行边框——FixedSingle
5.不可调整大小的工具窗体边框——FixedToolWindow
6.可调整大小的工具窗体边框——SizableToolWindow
7.可调整大小的边框——Sizable(一般为窗体的默认风格)
三、应用运行
1.图形界面
代码示例
package demo01;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class jFrameTest extends JFrame{
public jFrameTest(){
//设置窗体可见
setVisible(true);
//注意:点击关闭没有结束的运行
/*EXIT_ON_CLOSE:隐藏窗体并停止程序
DO_NOTHING_ON_CLOSE:无任何操作
HIDE_ON_CLOSE:隐藏窗体,但是不停止程序
DISPOSE_ON_CLOSE:释放窗体资源
*/
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocation(200,300);//设置位置,单位是像素,从左上角0.0开始
//setSize(400, 300);//设置大小,单位:像素
setBounds(200,200,400,300);
Container c=getContentPane();
c.setBackground(Color.yellow);//设置背景颜色
JLabel l=new JLabel("喜欢动漫");
c.add(l);//添加组件
//c.remove(l);//移除组件
c.validate();
//f.setContentPane(c);
setResizable(false);//默认true能够改变大小
System.out.println("x="+getX()+"Y="+getX());
}
public static void main(String[] args) {
//JFrame f=new JFrame("小石");//创建窗体对象,在参数设置窗体标题
new jFrameTest();
}
}
运行结果
代码示例
窗口的设置
package demo01;
import java.awt.Container;
import javax.swing.JDialog;
import javax.swing.JLabel;
public class JDialogTest extends JDialog{
public static void main(String[] args) {
JDialog jd=new JDialog();
jd.setVisible(true);
jd.setBounds(200,300,400,400);
Container c=jd.getContentPane();//获取窗体容器
c.add(new JLabel("啊哈"));
}
}
package demo01;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class JDialogTest2 extends JDialog{
public JDialogTest2(JFrame frame) {
super(frame,"对话框",true);
setVisible(true);//设置窗体可见
setBounds(100,100,100,100);
//tDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
JFrame f=new JFrame("父窗体");
f.setBounds(50,50,300,300);
Container c=f.getContentPane();
JButton btn=new JButton("弹出对话框");
c.setLayout(new FlowLayout());
c.add(btn);
f.setVisible(true);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialogTest2 jd=new JDialogTest2(f);
jd.setVisible(true);
}
});
}
}