先看一下实现的效果图
先写了一个窗口容器,然后在里面添加了一个按钮,当我点击这个窗口容器中的按钮时,需要它弹窗出另一个窗口容器
如图:
其实学到这块已经没什么东西了,都是相似的调用,稍微不太一样的实现思路。
接下来看一下代码是怎么写的:
package com.Swing.Dialog;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test01Dialog {
public static void main(String[] args) {
new MyJFrame().init();
}
}
class MyJFrame extends JFrame{
public void init(){
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(600,420);
//添加关闭方法
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//获取容器
Container contentPane = frame.getContentPane();
//绝对布局
contentPane.setLayout(null);
//然后在设置一个按钮,给按钮添加监听事件,当按钮被点击的时候弹出另一个窗口
JButton button = new JButton("快点点我");
//给按钮设置大小
button.setBounds(200,105,90,75);
contentPane.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//弹窗
new MyDialog();
}
});
}
}
//设置弹窗类
class MyDialog extends JDialog{
public MyDialog(){
setVisible(true);
setBounds(270,270,300,300);
//这里不需要添加关闭事件了,因为弹窗默认是有关闭事件的
Container contentPane = this.getContentPane();
contentPane.setLayout(null);
contentPane.add(new JLabel("我被点击出来了"));
}
}
- 创建一个启动类,在启动类的主方法中匿名实现窗口容器类,并调用它的init方法。
- 在窗口容器的类中,创建init方法,设置好布局,然后关闭方法也不用自己在写监听类了,之后获取一下容器,因为样式的设置需要填放在容器当中,然后容器的布局设置成绝对布局。
- 然后在窗口容器当中创建一个按钮,设置好按钮的默认设置,将按钮添加到容器当中,这样当主方法启动调用init方法,窗口容器启动之后,它的里面也会包含 我们设置在容器中的东东。
- 给按钮添加监听事件,添加好了监听事件,在里面调用另一个窗口容器,作为弹窗效果弹出的新界面。