请教高手如何解决难题

king_2007 2015-09-14 09:09:23
请问高手,一个主窗口有两个按钮,点击按钮a,弹出一个次窗口,同时主窗口上的按钮状体为不可用,次窗口置顶,关闭次窗口右上方的x 按钮后,关闭次窗口,主窗口上的按钮状体为可用,请问这个功能如何实现?
...全文
170 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
king_2007 2015-09-17
  • 打赏
  • 举报
回复
引用 5 楼 wufeng55 的回复:
可以通过对话框中的是否可用性设置,也可以利用对话框中种类中的模态和非模态实现同样的功能。
要求次窗口是标准的窗口,而非对话框窗口。
code小生 2015-09-16
  • 打赏
  • 举报
回复
可以通过对话框中的是否可用性设置,也可以利用对话框中种类中的模态和非模态实现同样的功能。
三仙半 2015-09-16
  • 打赏
  • 举报
回复

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

/**
 *
 * @author zys59三仙半(QQ:597882752)<br>
 *         创建时间:2015年9月16日 上午7:47:05
 */
public class DoubleFrame extends JFrame {
	private static final long serialVersionUID = -2768086441362968872L;

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					DoubleFrame frame = new DoubleFrame();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	private JFrame child;

	private JButton btnAaa;

	private JButton btnBbb;

	/**
	 * Create the frame.
	 */
	public DoubleFrame() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("主窗口");
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		child = new JFrame("从窗口");
		child.setBounds(20, 20, 150, 120);
		child.setDefaultCloseOperation(HIDE_ON_CLOSE);
		child.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				btnAaa.setEnabled(true);
			}
		});

		btnAaa = new JButton("AAA");
		btnAaa.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				btnAaa.setEnabled(false);
				child.setVisible(true);
			}
		});
		btnAaa.setBounds(38, 105, 93, 23);
		contentPane.add(btnAaa);

		btnBbb = new JButton("BBB");
		btnBbb.setBounds(216, 147, 93, 23);
		contentPane.add(btnBbb);
	}
}
DY1201 2015-09-16
  • 打赏
  • 举报
回复
这是前端的效果
三仙半 2015-09-15
  • 打赏
  • 举报
回复
点主窗口按钮a时,在点击事件处理方法中,设置自身的enable属性为false;在主窗口中设置公有方法ta(),使按钮a的enable属性为true;在从窗口中持有主窗口引用;从窗口注册窗口关闭事件监听,在处理方法中调用主窗口的方法ta()。
king_2007 2015-09-15
  • 打赏
  • 举报
回复
引用 2 楼 zys59 的回复:
点主窗口按钮a时,在点击事件处理方法中,设置自身的enable属性为false;在主窗口中设置公有方法ta(),使按钮a的enable属性为true;在从窗口中持有主窗口引用;从窗口注册窗口关闭事件监听,在处理方法中调用主窗口的方法ta()。
请高手能附上代码让我看看吗?就从点击次窗口右上角的x按钮后,关闭次窗口,回复主窗口按钮的可用状态。
Dillon2015 2015-09-14
  • 打赏
  • 举报
回复
模态对话框有这个属性,只有当前窗口处理后才能进行其他操作

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧