2015-03-20 9 views
16

Moje okno aplikacji Java Swing znika, gdy przeciągam je myszą z jednego monitora na drugi. Jest widoczny podczas przeciągania, ale znika natychmiast po zwolnieniu przycisku myszy. Wolałbym, żeby okno nie zniknęło. Dlaczego to znika?Okno aplikacji Java Swing znika po przejściu do innego ekranu/pulpitu/ekranu w systemie Mac OS X

Po aktywowaniu Kontroli misji, okno Swing wyświetla się u dołu pulpitu, na którym go przeciągnąłem. Wyłączenie kontroli misji powoduje, że zsuwa się ona z dołu ekranu.

Nie ma znaczenia, którą aplikację Java Swing uruchamiam. Dla tych, którzy chcą kod, oto aplikacja Swing prosty Java, który wykazuje zachowanie Jestem opisujący, cieszyć:

import java.awt.*; 
import javax.swing.*; 

class SimpleSwing { 
    public static void main(final String... args) { 
     SwingUtilities.invokeLater(new Runnable() { 
       @Override public void run() { 
        JFrame frame = new JFrame(); 
        JPanel contentPane = new JPanel(); 
        contentPane.add(new JLabel("Hello World!")); 
        frame.setContentPane(contentPane); 
        frame.pack(); 
        frame.setVisible(true); 
       } 
      }); 
    } 
} 

Moje środowisko jest Oracle Java JDK (najpóźniej jak to pisze) w systemie Mac OS X Yosemite (najpóźniej jak to pisze):

java version "1.8.0_40" 
Java(TM) SE Runtime Environment (build 1.8.0_40-b27) 
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) 

OS X Yosemite Version 10.10.2 (14C1510) 
Darwin Kernel Version 14.1.0 
+2

Czy drugi monitor ma duże przesunięcie y? Miałem problemy z Swingiem z JDK 7/8, gdy górna współrzędna "y" drugiego monitora była ujemna względem mojej pierwszej. – prunge

+0

To jest wskazówka! Przestawiłem monitory w układ obok siebie, a nie na górze i mogę przeciągnąć okno przez ekrany zgodnie z oczekiwaniami! Ciekawym aspektem układu z góry na dół jest to, że kiedy spróbuję przeciągnąć okno na inny pulpit, okno zniknie na dobre. Mogę wejść do kontroli misji i chwycić za okno i przenieść je na inny (oryginalny) pulpit, ale także "opada" poza ekran. Zastanawiam się, czy istnieje jakieś obejście tego ... –

+0

Mając ten sam problem - yworks (regularna aplikacja java) uruchomi się na ekranie mojego laptopa, ale kiedy spróbuję przeciągnąć go na zewnętrzny monitor, POOF! Odszedł. Doprowadza mnie do szału. –

Odpowiedz

1

Spróbuj wykonać następujące czynności:

  1. Przejdź do sekcji system Preferences> Wyświetlacze> Arrangement
  2. Align dwa prostokąty idealnie
  3. Zobacz czy działa
  4. Jeśli nie, zmienić kolejność 2 prostokąty (oraz monitory lub podłączyć je w różny sposób)

Nadzieja to pomaga, ale nie jestem pewien jeśli to rozwiązanie.

1

Krok: Przed frame.setVisible (true); możesz dodać poniżej dwie linie kodu, a następnie przetestować ponownie.

frame.setLocation (500, 500); frame.setAlwaysOnTop (true);

Powiązane problemy