Получил JFrame с кнопкой на нем, если кнопка нажата, а затем выталкивает JDialog вверх. Если я нажимаю на JFrame, то JDialog удаляет. Но если JDialog активен, и я нажимаю на JButton, у него есть JDIalog и снова его открываю. Я хочу закрыть JDialog также с JButton. БлагодаряКнопка на JFrame доступна для кликов, но JDialog вверх
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.event.*;
public class Frame extends JFrame {
private JButton jButton;
private JLabel jLabel = new JLabel("Test");
private JDialog jDialog;
public Frame() {
getContentPane().add(jLabel);
getContentPane().add(getButton(), BorderLayout.EAST);
this.setSize(300,300);
this.setVisible(true);
}
private JButton getButton() {
if (jButton == null) {
jButton = new JButton("TestButton");
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button_Pressed();
}
});
}
return jButton;
}
private JDialog getJDialog() {
if (jDialog == null) {
jDialog = new JDialog();
jDialog.setSize(150, 25);
jDialog.setUndecorated(true);
jDialog.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
jDialog.dispose();
}
@Override
public void windowClosing(WindowEvent e) {
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
}
});
}
return jDialog;
}
protected void button_Pressed() {
getJDialog().setVisible(true);
}
public static void main(String[] args) {
new Frame();
}
}
Просто отключите кнопку, пока диалог открыт. – Holger
Вам нужно показать код, если вы не хотите, чтобы вопрос был закрыт. Этот сайт предназначен для помощи с кодом, который вы не можете исправить самостоятельно, а не более общие вопросы, подобные вашим. – RiggsFolly
sry добавил образец кода – user3257220