awt的对话框组件1
Dialog是window类的子类(前面学的Frame类也是window的子类),是一个容器类,属于特殊组件。对话框是可以独立存在的顶级窗口,因此与普通窗口的用法几乎完全一样,但是使用对话框需要注意下面两点:
1、虽然Dialog对话框可以独立存在,但是对话框通常依赖其他窗口,就是通常需要有一个父窗口 2、Dialog对话框有非模式和模式两种。如果是非模式对话框,那么Dialog对话框跟父窗口是独立的,没有操作关系。如果是模式对话框,那么Dialog对话框未关闭之前,父窗口是不能做任何操作的
方法 | 作用 |
---|---|
Dialog(Frame owner,String title,boolean modal) | 创建一个对话框对象。其中onwer是当前对话框的父窗口,titile是当前对话框的标题,modal是当前对话框是否为模式对话框 |
awt的对话框组件1_练习
xxxxxxxxxx
package ch29;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class a_4_1awt_对话框组件1 {
public static void main(String[] args) {
Frame frame=new Frame();
//1.创建两个对话框Dialog对象,一个模式,一个非模式
Dialog d1 = new Dialog(frame, "模式对话框", true);
Dialog d2=new Dialog(frame,"非模式对话框",false);
//2、通过setBounds方法设置Dialog的位置与大小
d1.setBounds(20,30,300,200);
d2.setBounds(20,30,300,200);
//3、创建两个按钮
Button b1=new Button("打开模式对话框");
Button b2=new Button("打开非模式对话框");
//4、需要给这两个按钮添加点击后的行为(AWT事件)
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d1.setVisible(true);//显示组件即可
}
});
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d2.setVisible(true);
}
});
//给Frame设置WindowListener监听器,监听用户点击右上角X的动作,则关闭窗口
frame.addWindowListener(new WindowAdapter() {
//采用Java通过的适配器设计模式,我们只需要重写自己需要的方法,例如windowClosing方法,如下
public void windowClosing(WindowEvent e) {
System.exit(0);//原理:退出JVM虚拟机,即退出当前运行的Java程序
}
});
//5、把按钮添加到frame中
frame.add(b1,BorderLayout.NORTH);
frame.add(b2);
frame.pack();
frame.setVisible(true);
}
//为什么按钮里面的文字出现乱码:idea编码是UTF-8,生成的按钮是由当前win11操作系统创建的,而当前系统的默认编码是中文GBK编码,不一致就会出现乱码
//解决:让编码和解码一致
//具体解决:在idea软件的上方中间靠右一些有一个绿色锤子图标,点击锤子图标右边的输入框,点击下拉的Edit Configurations...,点击弹出来的
//选项卡的Modify options绿色字体,找到Add VM options并勾选,将'-Dfile.encoding=gbk'输入到刚才Modify options蓝色字体的
//下方的三条输入框中的最上面那条输入框里面
}
awt的对话框组件2
上面是简单演示了非模式|模式对话框跟父类窗口的操作关系
下面的要学的是往对话框里面添加文本文字。原理:Dialog对话框和Frame容器一样都是window的子类,实际上Dialog对话框也是一个容器,我们可以通过add方法往Dialog容器里面添加内容,比如添加文本框组件
需求: 如何添加组件到对话框里面去呢 其实很简单只需要将基本组件装到Box中在将Box中的对象添加到对话框即可
awt的对话框组件2_练习
x
package ch29;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class a_4_2awt_对话框组件2 {
public static void main(String[] args) {
Frame frame=new Frame();
//1、创建对话框Dialog对象,只演示模式对话框
Dialog d1 = new Dialog(frame, "模式对话框", true);
//2、创建一个垂直的Box容器,把一个文本框以及确定按钮放在Box容器中
Box vbox=Box.createVerticalBox();
vbox.add(new TextField(20));//往垂直BOX容器里面添加一个20列的文本框组件
vbox.add(new Button("确认"));//往垂直BOX容器里面添加一个确认按钮组件。最后确认按钮组件和上面那行的文本框会在BOX容器里面垂直排列
//3、将BOX容器既vbox,放到d1模式对话框容器里面
d1.add(vbox);
//4、通过setBounds方法设置Dialog的位置与大小
d1.setBounds(20,30,300,200);
//5、创建button按钮
Button b1=new Button("打开模式对话框");
//6、需要给button按钮添加点击后的行为(AWT事件)
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d1.setVisible(true);//点击了按钮就会显示Dialog对话框组件,我们的文本框在Dialog对话框组件的内部
}
});
//给Frame设置WindowListener监听器,监听用户点击右上角X的动作,则关闭窗口
frame.addWindowListener(new WindowAdapter() {
//采用Java通过的适配器设计模式,我们只需要重写自己需要的方法,例如windowClosing方法,如下
public void windowClosing(WindowEvent e) {
System.exit(0);//原理:退出JVM虚拟机,即退出当前运行的Java程序
}
});
//7、把按钮添加到frame中
frame.add(b1,BorderLayout.NORTH);
frame.pack();
frame.setVisible(true);
}
//为什么按钮里面的文字出现乱码:idea编码是UTF-8,生成的按钮是由当前win11操作系统创建的,而当前系统的默认编码是中文GBK编码,不一致就会出现乱码
//解决:让编码和解码一致
//具体解决:在idea软件的上方中间靠右一些有一个绿色锤子图标,点击锤子图标右边的输入框,点击下拉的Edit Configurations...,点击弹出来的
//选项卡的Modify options绿色字体,找到Add VM options并勾选,将'-Dfile.encoding=gbk'输入到刚才Modify options蓝色字体的
//下方的三条输入框中的最上面那条输入框里面
}