java非模态弹窗_如何在Swing中创建非模态对话框?

下面的示例展示了如何在基于swing的应用程序中创建非模态对话框。

使用以下API –

JDialog() – 创建标准对话框。

JDialog.getContentPane() – 获取对话框的内容面板。

示例

package com.yiibai.swingdemo; import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import java.awt.LayoutManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class SwingTester { public static void main(String[] args) { createWindow(); } private static void createWindow() { JFrame frame = new JFrame("Swing非模态对话框(yiibai.com)"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); createUI(frame); frame.setSize(560, 200); frame.setLocationRelativeTo(null); frame.setVisible(true); } private static void createUI(final JFrame frame){ JPanel panel = new JPanel(); LayoutManager layout = new FlowLayout(); panel.setLayout(layout); JButton button = new JButton("点击这里开始~"); final JDialog modelDialog = createDialog(frame); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { modelDialog.setVisible(true); } }); panel.add(button); frame.getContentPane().add(panel, BorderLayout.CENTER); } private static JDialog createDialog(final JFrame frame){ final JDialog modelDialog = new JDialog(frame, "非模态对话框示例"); modelDialog.setBounds(132, 132, 300, 200); Container dialogContainer = modelDialog.getContentPane(); dialogContainer.setLayout(new BorderLayout()); dialogContainer.add(new JLabel("欢迎学习Java/Swing~") , BorderLayout.CENTER); JPanel panel1 = new JPanel(); panel1.setLayout(new FlowLayout()); JButton okButton = new JButton("确定"); okButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { modelDialog.setVisible(false); } }); panel1.add(okButton); dialogContainer.add(panel1, BorderLayout.SOUTH); return modelDialog; } }

执行上面示例代码,得到以下结果:

8-1581433651.png

¥ 我要打赏   纠错/补充 收藏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值