JFrame窗体传递

主窗体代码

package MainChildFrame;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MainFrame extends JFrame {
	JButton bt1 =new JButton("弹出子窗体");
	JButton bt2 =new JButton("弹出提示对话框");
	JButton bt3 =new JButton("弹出错误对话框");
	JButton bt4 =new JButton("弹出警告对话框");
	JButton bt5 =new JButton("弹出问题对话框");
	JButton bt6 =new JButton("弹出选择对话框");
	JLabel lb =new JLabel();
	public MainFrame() {
		setLayout(new FlowLayout());
		add(bt1);
		add(bt2);
		add(bt3);
		add(bt4);
		add(bt5);
		add(bt6);
		add(lb);
		this.setTitle("MainFrame");
		this.setSize(400,350);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		
		bt1.addActionListener(new BtListener());
		bt2.addActionListener(new Bt2Listener());
		bt3.addActionListener(new Bt3Listener());
		bt4.addActionListener(new Bt4Listener());
		bt5.addActionListener(new Bt5Listener());
		bt6.addActionListener(new Bt6Listener());
	}
	//子窗体  监听器
	class BtListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			ChildFrame dlg =new ChildFrame(MainFrame.this);
			dlg.setSize(300,300);
			dlg.setTitle("子窗体");
			dlg.setLocationRelativeTo(null);//定位在显示器正中间
			dlg.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//禁用关闭按钮	
			dlg.setResizable(false);//禁止窗体最大化
			dlg.setVisible(true);
			dlg.lb.setText("from MainFrame");//向子窗体传值
			MainFrame.this.setVisible(false);//隐藏主窗体
			
		}
	}
	/*
	 * setDefaultCloseOperation( );  各个参数的定义:
	 * 
		1、为“0”或DO_NOTHING_ON_CLOSE:
		    (在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的WindowListener 对象的 windowClosing 方法中处理该操作。
		
		2、为“1”或HIDE_ON_CLOSE:
		    调用任意已注册的 WindowListener 对象后自动隐藏该窗体。此时没有关闭程序,只是将程序界面隐藏了。
		
		3、为“2”或DISPOSE_ON_CLOSE:
		    调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。但继续运行应用程序,释放了窗体中占用的资源。
		
		4、为“3”EXIT_ON_CLOSE:
		        (在 JFrame 中定义)使用 System exit 方法退出应用程序。仅在应用程序中使用。结束了应用程序。
		
		5、默认情况下,该值被设置为 HIDE_ON_CLOSE
	 */
	//提示对话框  监听器
	class Bt2Listener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			JOptionPane.showMessageDialog(null,"这是一个提示信息", "提示",JOptionPane.INFORMATION_MESSAGE);
		}
	}
	//错误对话框  监听器
	class Bt3Listener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			JOptionPane.showMessageDialog(null,"这是一个错误信息", "错误",JOptionPane.ERROR_MESSAGE);
		}
	}
	//警告对话框  监听器
	class Bt4Listener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			JOptionPane.showMessageDialog(null,"这是一个警告信息", "警告",JOptionPane.WARNING_MESSAGE);
		}
	}
	//问题对话框  监听器
	class Bt5Listener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			JOptionPane.showMessageDialog(null,"这是一个问题信息", "问题",JOptionPane.QUESTION_MESSAGE);
		}
	}
	//选择对话框  监听器
	class Bt6Listener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			JOptionPane.showConfirmDialog(null,"是否确认","请选择",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
		}
	}
	
	
	
	public static void main(String[] args) {		
		new MainFrame();
	}

}

子窗体代码

package MainChildFrame;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class ChildFrame  extends JFrame {
	JButton bt =new JButton("返回主窗体");
	MainFrame main =null;//表示探出子窗体的主窗口,由主窗口创建对话框时传递过来
	JLabel lb =new JLabel();
	
	public ChildFrame(MainFrame main) {
		this.main=main;//主窗口传来后,即可对主窗口及其组件进行操作
		setLayout(new FlowLayout());
		add(bt);
		add(lb);
		bt.addActionListener(new BtListener());
	}
	class BtListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			dispose();//隐藏子窗体
			main.lb.setText("from ChildFrame");//向主窗体传值
			main.setVisible(true);//显示主窗体
		}
	}
}

运行效果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThinkPet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值