一、相关说明
学习的内容接上一部分的内容,代码也是接着上一次的代码。
二、过程
窗体是一个容器,除此还可以在容器里面创建一个容器。
- 窗口和窗体是同个意思。
1.设置窗口背景颜色
要设置窗口的背景颜色,这要在窗口内再创建一个容器。
Container c=f.getContentPane();
表示创建一个容器(container)。然后再指定背景的颜色,即c.setBackground(Color.GREEN);
。这里选择的是绿色(Green),当然也可以换成别的颜色,如red,white。
- 注意:要用到容器功能要在class前导入awt包,即
import java.awt.*;
。
(1)到此部分的代码
import java.awt.*;
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口标题");// 创建窗体标题
f.setVisible(true); // 是否可见方法
/*
* 窗体的关闭规则
* EXIT_ON_CLOS:隐藏窗口,并停止程序运行
* DO_NOTHING_ON_CLOSE:无任何操作
* HIDE_ON_CLOSE:隐藏窗口,不停止程序运行
* DISPOSE_ON_CLOSE:释放窗口资源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隐藏窗口,停止程序运行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 无任何操作,点×不会隐藏窗口,程序也不会停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隐藏窗口,不停止程序运行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 释放窗口资源
/*
* 调整窗口的大小,这里设置了一个 长:600 宽:300 的窗口。单位:像素。
*/
//f.setSize(600,300);// 设置窗口的大小,(单位:像素)括号里:长,宽
/*
* 设置窗口位置,也可以说是坐标。
*/
//f.setLocation(200,200);//设置坐标
/*
* 同时调整窗口大小、位置的方法
*/
f.setBounds(600,300,350,200);// x轴,y轴,长,宽 单位:像素
Container c=f.getContentPane();// 获取窗体容器,container(容器)
c.setBackground(Color.GREEN);// 设置背景颜色为白色
}
}
(2)窗口的效果
2.在窗口里添加组件
JLabel l=new JLable("2020。7.8.星期三");
表示新建一个组件,内容为:2020.7.8.星期三
c.add(l);
将组件添加到窗口内显示,如此就可以在窗口内显示“2020.7.8.星期三”。
- 效果如下:
当再输入c.remove(l);
则表示删除这个组件,删除后便不再显示“2020.7.8.星期三”了。删除完后通常需要验证一下窗口内的组件,可以看作为刷新,即输入c.validate();
。此外f.setContentpane(c);
也可以达到刷新的效果。 - 这部分代码为:
Container c=f.getContentPane();// 获取窗体容器,container(容器)
c.setBackground(Color.GREEN);// 设置背景颜色为白色
JLabel l=new JLabel("2020。7.8.星期三");// 新建一个组件,内容为:2020.7.8.星期三
c.add(l);// 将组件添加到窗口内显示
//c.remove(l);// 删除组件
c.validate();// 验证容器中的组件,相当与刷新
//f.setContentpane(c);// 重新载入容器,也可以达到刷新的效果
3.设置窗口大小是否可变
以上设置的窗口大小可以通过鼠标对窗口进行拉伸而改变窗口的大小。但有特殊需求时,比如不允许窗口可以自由改变大小。想固定窗口大小,可输入f.setResizable(false);
。(可变尺寸的–resizable)。如此窗口便不可以通过鼠标拉伸改变大小了。
- 效果如下:
不难看出右上角的最大化也变灰暗,无法点击变大。这时也无法通过鼠标来拉伸改变窗口大小。
4.输出窗体的坐标
输出窗口x、y轴的坐标:
System.out.println("x轴坐标:"+f.getX()+"y轴坐标:"+f.getY());
三、总的代码
- 效果为以上第一个图。
import java.awt.*;
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口标题");// 创建窗体标题
f.setVisible(true); // 是否可见方法
/*
* 窗体的关闭规则
* EXIT_ON_CLOS:隐藏窗口,并停止程序运行
* DO_NOTHING_ON_CLOSE:无任何操作
* HIDE_ON_CLOSE:隐藏窗口,不停止程序运行
* DISPOSE_ON_CLOSE:释放窗口资源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隐藏窗口,停止程序运行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 无任何操作,点×不会隐藏窗口,程序也不会停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隐藏窗口,不停止程序运行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 释放窗口资源
/*
* 调整窗口的大小,这里设置了一个 长:600 宽:300 的窗口。单位:像素。
*/
//f.setSize(600,300);// 设置窗口的大小,(单位:像素)括号里:长,宽
/*
* 设置窗口位置,也可以说是坐标。
*/
//f.setLocation(200,200);//设置坐标
/*
* 同时调整窗口大小、位置的方法
*/
f.setBounds(600,300,350,200);// x轴,y轴,长,宽 单位:像素
Container c=f.getContentPane();// 获取窗体容器,container(容器)
c.setBackground(Color.GREEN);// 设置背景颜色为白色
JLabel l=new JLabel("2020。7.8.星期三");// 新建一个组件,内容为:2020.7.8.星期三
c.add(l);// 将组件添加到窗口内显示
//c.remove(l);// 删除组件
c.validate();// 验证容器中的组件,相当与刷新
//f.setContentpane(c);// 重新载入容器,也可以达到刷新的效果
f.setResizable(false);// 设置窗口是否可以改变大小,resizable(可变尺寸的)
System.out.println("x轴坐标:"+f.getX()+"y轴坐标:"+f.getY());// 输出窗口坐标
}
}
四、定位日期
2020.7.8;21:00