2017-10-04 4 views
0

Ich bin beauftragt, eine SWT-Shell zu öffnen, so dass es mehrere Monitore überspannt.SWT Shell-Größe einstellen, um mehrere Monitore zu überbrücken

So verlasse ich mich auf shell.setLocation(x, y), um die Shell an dem angegebenen Speicherort und shell.setSize(width, height) zu öffnen, um die Dimension festzulegen.

Wenn ich eine Breite verwende, die größer als ein einzelner Monitor ist (z. B. 3840 für zwei Monitore), wird die Shell irgendwie so angepasst, dass sie genau einem Monitor entspricht (das ist 1920).

passiert unter Windows und Linux.

Minimal Beispiel:

public class ShellSample { 
    public static void main(final String[] args) { 
     final Display display = new Display(); 
     final Shell shell = new Shell(display, SWT.NO_TRIM); 
     final Window win = new ApplicationWindow(shell) { 
      @Override 
      protected void configureShell(final Shell shell) { 
       shell.setLocation(0, 0); 
       shell.setSize(3840, 100); 
      } 
     }; 
     win.open(); 
     while (!shell.isDisposed()) { 
      if (!display.readAndDispatch()) { 
       display.sleep(); 
      } 
     } 
     shell.dispose(); 
     display.dispose(); 
    } 
} 
+1

Bitte senden Sie eine [MCVE] (https://stackoverflow.com/help/mcve), das Ihr Problem zeigt. – Baz

+1

@Baz Dank - Codierung der MCVE hat ergeben, dass das Problem überhaupt nicht mit SWT zusammenhängt. Kodierung einer E4-Anwendung, also passiert wahrscheinlich schwarze Magie ... – leftbit

Antwort

0

Dumm mich.

Eigentlich habe ich nicht die Größe einer SWT-Shell geändert, sondern ein JFace-Fenster.

So war die Lösung die constrainShellSize Methode außer Kraft zu setzen ...

Verwandte Themen