java父子对话框_java – 如何将JFrame设置为JDialog的父级

我无法将框架设置为对话框的所有者.通常当我扩展JDialog类来创建对话框时,我使用超级(框架)来指定对话框的所有者,以便当您按Alt选项卡时,它们都不会脱节.但是当我使用新的JDialog对话框= new JDialog()创建一个对话框时,我无法将框架指定为对话框的所有者.

以上示例以上两种方法.顶部点击按钮打开一个没有扩展JDialog的对话框. Bottom Click按钮打开一个扩展JDialog的对话框.

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.EventQueue;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JFrame;

public class DialogEx {

public static void main(String[] args) {

Runnable r = new Runnable() {

public void run() {

new DialogEx().createUI();

}

};

EventQueue.invokeLater(r);

}

private void createUI() {

final JFrame frame = new JFrame();

frame.setLayout(new BorderLayout());

JButton button1 = new JButton("Top Click");

JButton button2 = new JButton("Bottom Click");

button2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

new DialogExtend(frame).createUI();

}

});

button1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent event) {

new DialogWithoutExtend(frame).cretaUI();

}

});

frame.setTitle("Test Dialog Instances.");

frame.add(button1, BorderLayout.NORTH);

frame.add(button2, BorderLayout.SOUTH);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(new Dimension(300, 200));

frame.setVisible(true);

}

class DialogExtend extends JDialog {

private JFrame frame;

public DialogExtend(JFrame frame) {

super(frame);

this.frame = frame;

}

public void createUI() {

setLocationRelativeTo(frame);

setTitle("Dialog created by extending JDialog class.");

setSize(new Dimension(400, 100));

setModal(true);

setVisible(true);

}

}

class DialogWithoutExtend {

private JFrame frame;

public DialogWithoutExtend(JFrame frame) {

this.frame = frame;

}

public void cretaUI() {

JDialog dialog = new JDialog();

dialog.setTitle("Dialog created without extending JDialog class.");

dialog.setSize(new Dimension(400, 100));

dialog.setLocationRelativeTo(frame);

dialog.setModal(true);

dialog.setVisible(true);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值