2015-12-09 3 views

ответ

6

Возможно, вам стоит избегать the use of multiple JFrames, isDisplayable() - это метод, который вы могли бы использовать для этого.

Пример:

enter image description here

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

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Example { 

    public Example() { 
     JFrame frame = new JFrame("Frame 1"); 
     JFrame frame2 = new JFrame("Frame 2"); 

     JLabel label = new JLabel(""); 

     JButton button = new JButton("Check"); 
     button.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       label.setText(frame2.isDisplayable() ? "Active" : "Disposed"); 
      } 
     }); 

     JPanel panel = new JPanel(); 
     panel.add(button); 
     panel.add(label); 

     frame.setContentPane(panel); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(200, 100); 
     frame.setVisible(true); 

     frame2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     frame2.setSize(200, 100); 
     frame2.setLocation(frame.getX() + frame.getWidth(), frame.getY()); 
     frame2.setVisible(true); 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new Example(); 
      } 
     }); 
    } 
} 
0

Чтобы проверить, не находится ли он, вы должны использовать WindowListener.

+0

Я не хочу получать уведомления, если он расположен. Я просто хочу проверить в определенный момент. –

Смежные вопросы