awt的对话框组件1
Dialog是window类的子类(前面学的Frame类也是window的子类),是一个容器类,属于特殊组件。对话框是可以独立存在的顶级窗口,因此与普通窗口的用法几乎完全一样,但是使用对话框需要注意下面两点:
1、虽然Dialog对话框可以独立存在,但是对话框通常依赖其他窗口,就是通常需要有一个父窗口 2、Dialog对话框有非模式和模式两种。如果是非模式对话框,那么Dialog对话框跟父窗口是独立的,没有操作关系。如果是模式对话框,那么Dialog对话框未关闭之前,父窗口是不能做任何操作的
| 方法 | 作用 |
|---|---|
| Dialog(Frame owner,String title,boolean modal) | 创建一个对话框对象。其中onwer是当前对话框的父窗口,titile是当前对话框的标题,modal是当前对话框是否为模式对话框 |
awt的对话框组件1_练习
xxxxxxxxxxpackage 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蓝色字体的 //下方的三条输入框中的最上面那条输入框里面
}