700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java父子对话框_java – 如何将JFrame设置为JDialog的父级

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

时间:2019-07-26 06:28:17

相关推荐

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);

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。