Breite und Höhe aller Monitore ausgeben.

JavaRentner

Mitglied
Guten Tag Alle

Ich habe sechs baugleiche Monitore (1920 x 1080, 27")
Angeordnet in zwei Reihen à 3 Stück.

Wenn ich das manuell ausrechne komme ich auf eine Dimension von: 5760 x 2160

Meine Frage ist, wie kann ich mit java auf dieses Ergebnis kommen?
Java:
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = env.getScreenDevices();

devices.length;    //ergibt 6 Monitore
/*
6 * 1920 wäre also FALSCH
6 * 1080 ist ebenso FALSCH
*/

int w = env.getMaximumWindowBounds().width;
int h = env.getMaximumWindowBounds().height;

/*
Wenn die (Task) Leiste ganz links auf ERSTEM Monitor und ebenfalls auf viertem
Monitor Vertikal gesetzt ist, ist w um die Breite der Leiste zu KLEIN!

Wenn die Liste am unteren Rand auf allen drei Monitoren liegt ist h um die höhe der
Leiste zu klein.
*/
Einfach devices.length durch 2 zu teilen bringt es auf dem zweiten Compi nicht, weil der 5 Monitore hat!
Drei in der untersten Reihe und zwei in der 2. Reihe (EINGEMITTET)
Diese Anordnung wird für ein anderes Programm, zwecks Ausgabe, so erwartet!

Ab hier komme ich mit meinen bescheidenen Kenntnissen nicht mehr weiter...

Wenn es dazu im JDK nichts vorgefertigtes gibt, wie würde dann ein Workaround aussehen?
Mit welchen Infos aus GraphicsEnvironment könnte ich da arbeiten?

Vielen Dank
Ohne Hilfe komme ich da nicht weiter.

PS:
Es gibt noch eine dritte Station die vier Monitore auf einer Reihe hat!
Wenn ich da durch 2 teile, habe ich oben zwei schwarze Felder und unten fehlen mir zwei Monitore.
 
Zuletzt bearbeitet:
Beste Antwort
Folgendes sollte dir die Gesamtgröße aller Monitore ausgeben:


Java:
public class MonitorTest {
    public static void main(String[] args) {
        var env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        var screens = env.getScreenDevices();

        var width = 0;
        var height = 0;

        for (GraphicsDevice screen : screens) {
         
            //Der linkeste Monitor hat x = 0, der oberste y = 0. 
            //Ansonsten sind die Werte relativ zu einander
            var bounds = screen.getDefaultConfiguration().getBounds();

            var currentWidth = bounds.x + bounds.width;

            if (currentWidth > width) {
                width = currentWidth;
            }

            var currentHeight =...

Ebi

Mitglied
Folgendes sollte dir die Gesamtgröße aller Monitore ausgeben:


Java:
public class MonitorTest {
    public static void main(String[] args) {
        var env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        var screens = env.getScreenDevices();

        var width = 0;
        var height = 0;

        for (GraphicsDevice screen : screens) {
         
            //Der linkeste Monitor hat x = 0, der oberste y = 0. 
            //Ansonsten sind die Werte relativ zu einander
            var bounds = screen.getDefaultConfiguration().getBounds();

            var currentWidth = bounds.x + bounds.width;

            if (currentWidth > width) {
                width = currentWidth;
            }

            var currentHeight = bounds.y + bounds.height;
            if (currentHeight > height) {
                height = currentWidth;
            }
        }

        System.out.println("%s * %s".formatted(width, height));
    }
}

Mit der Taskleiste weiß ich spontan auch nichts besseres, als die dann einfach von der Höhe abzuziehen.
 
Beste Antwort

JavaRentner

Mitglied
@Ebi
Das war genau DAS was ich gesucht habe! 😁😁😁

Java:
height = currentWidth;
Ich glaube das sollte: height = currentHeight; heissen?

Da der primäre Monitor der mittlere in der unteren Reihe ist, muss ich das iwie mit dem x noch anpassen.
Aber das krieg ich hin!

Darf ich Deinen Code so verwenden? Wäre super.
Vielen Dank!
 
Zuletzt bearbeitet:

JavaRentner

Mitglied
Hi @Oneixee5

5760 x 2160 habe ich auf einem Monitor - muss ich nicht so viel rechnen - bloß gut
Was machst Du wenn Du zu deinem Monitor noch einen zweiten (gleicher Bauweise) daneben stellst?
Oder sogar noch zwei Monitore (gleicher Bauweise) darüber stellst?

Dann fängt doch auch bei Dir die rechnerei an! Oder nicht?
Gruss JavaRentner

Das von Ebi war schon die Lösung!
Funktioniert sogar mit Monitoren ungleicher Grösse!
Gerade getestet mit einem Notebook 17" (1600*900) mit angeschlossenem 27" Monitor (1920x1080)
 
Zuletzt bearbeitet:

Oneixee5

Top Contributor
Was machst Du wenn Du zu deinem Monitor noch einen zweiten (gleicher Bauweise) daneben stellst?
Oder sogar noch zwei Monitore (gleicher Bauweise) darüber stellst?
Ich will streiten aber sowas will man nicht mehr, das ist so 2010 - hässlich, sperrig ... Es ist auch nicht ergonomisch und gesund. In den Büros werden diese Setups schon seit einer Weile ersetzt. Mit Abschluss der Win11-Umstellung soll das bei uns alles weg sein. Wenn man etwas noch größeres als einen Dell UltraSharp braucht, dann kann man das Bild immer noch auf die Wand legen. Bei den Auflösungen kommen aber die USBC-Docks an ihre Grenzen.
Du machst das aber schon richtig, wenn man eine Desktop-Software schreibt, dann sollte man auch Multi-Monitor-Setups berücksichtigen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
dummy2 Negative Höhe / Breite bei Figuren Java Basics - Anfänger-Themen 2
dummy2 Breite / Höhe Java Basics - Anfänger-Themen 4
U Breite von Textfeldern trotz Layoutmanager Java Basics - Anfänger-Themen 4
T TextField Breite automatisch gebunden Java Basics - Anfänger-Themen 8
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
J Breite eines Strings bestimmen Java Basics - Anfänger-Themen 4
T Ändern der Breite eines Zeichens Java Basics - Anfänger-Themen 3
M Die Breite bei der Gui richtig setzen. Java Basics - Anfänger-Themen 1
M TableColumn Breite setzen Java Basics - Anfänger-Themen 9
D Probleme bei der Column-Breite einer JTable Java Basics - Anfänger-Themen 4
E Breite des Schiebers in JscrollPane verändern Java Basics - Anfänger-Themen 2
R JTable Column Breite bei Veränderung registrieren Java Basics - Anfänger-Themen 2
H Probleme, TableColumn-Breite zu setzen Java Basics - Anfänger-Themen 4
D JMenuBar Breite ? Java Basics - Anfänger-Themen 3
R Noch eine Frage: Breite des Applets im Browser ermitteln Java Basics - Anfänger-Themen 7
M Breite von String für Serverseitige nutzung Berechnen Java Basics - Anfänger-Themen 3
BeginnerJava "Weihnachtsbäume" anzeigen: Höhe als Parameter Java Basics - Anfänger-Themen 1
E JPanels auf gleicher Höhe (Y-Achse) in einem FlowLayout platzieren Java Basics - Anfänger-Themen 7
H Höhe eines binäurbaums. Java Basics - Anfänger-Themen 7
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
H Höhe einer Komponente an Textinhalt anpassen Java Basics - Anfänger-Themen 4
K JComboBox hat volle Höhe uber das gesamte JPane, warum? Java Basics - Anfänger-Themen 2
B Binärbaum höhe herausfinden Java Basics - Anfänger-Themen 12
R Höhe eines B-Baums Java Basics - Anfänger-Themen 3
L variable <div> höhe Java Basics - Anfänger-Themen 6
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
M Binärer Suchbaum Höhe Java Basics - Anfänger-Themen 6
L Höhe eines Baumes Java Basics - Anfänger-Themen 3
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
F Summieren aller Geschenke vom Typ Geschenk? Java Basics - Anfänger-Themen 12
F Summe aller echten Teiler Java Basics - Anfänger-Themen 2
F Summe aller echten Teiler und Zahlen zurückgeben Java Basics - Anfänger-Themen 1
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
A Summe aller ungeraden Zahlen Java Basics - Anfänger-Themen 5
J ArrayList: summe aller Spielkarten Java Basics - Anfänger-Themen 15
L Array: Summe aller geraden und ungeraden Zahlen ermitteln Java Basics - Anfänger-Themen 9
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
L Summer aller Integer-Zahlen im Intervall [x,y] Java Basics - Anfänger-Themen 6
1 Minimum aller Elemente in einem Array bestimmen Java Basics - Anfänger-Themen 10
S Collections Ausgabe aller Tastencodes Java Basics - Anfänger-Themen 9
F Nach Beendigung aller Schleifen von vorn anfangen, Java Basics - Anfänger-Themen 5
R string aller args[] ? Java Basics - Anfänger-Themen 8
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
O Liste aller Instanzen einer Klasse Java Basics - Anfänger-Themen 18
M Aller anfang ist schwer :D Hilfe! Java Basics - Anfänger-Themen 18
L Liste aller Klassen die in einem Paket sind Java Basics - Anfänger-Themen 7
F Aller Objekte einer Klasse Java Basics - Anfänger-Themen 9
D Summe aller Positiven Integer aus einer Liste mit ActionObject Java Basics - Anfänger-Themen 2
A Summe aller Natürlichen Zahlen - Methode Prüfen Java Basics - Anfänger-Themen 10
P Ermitteln aller perfekten Zahlen Java Basics - Anfänger-Themen 12
S Liste aller Partitionen (auch "unmounted") Java Basics - Anfänger-Themen 2
F Liste aller Ordner auf einem Laufwerk erstellen? Java Basics - Anfänger-Themen 3
Z Geburtstag aller Angestellten am bestimmten Datum Java Basics - Anfänger-Themen 59
A OOP Ausgabe aller erstellten Objekte Java Basics - Anfänger-Themen 3
M Eclipse: Durchsuchen aller Dateien? Java Basics - Anfänger-Themen 1
B Liste aller Klassen die ein Interface implementieren. Java Basics - Anfänger-Themen 7
K Anzahl aller Datensätze anzeigen ? Java Basics - Anfänger-Themen 5
L Auflistung aller Fonts Java Basics - Anfänger-Themen 2
G Liste aller WindowListener Java Basics - Anfänger-Themen 3
D Die Frage aller Fragen Java Basics - Anfänger-Themen 22
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
G Aller anfang is schwer. Java Basics - Anfänger-Themen 4
A ausgabe aller 10-bitzahlen Java Basics - Anfänger-Themen 6
A Liste aller Items einlesen Java Basics - Anfänger-Themen 8
B Wo finde ich eine Übersicht aller Methoden? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben