Swing Schrift sehr klein Ubuntu/eclipse

Saylles

Mitglied
Hi wie auf dem Bild zu sehen ist sind die Fenster sehr klein bzw. die Schrift.
Wie stelle ich das an das hier der Standard benutzt wird, ich nutze als System Ubuntu.
 

Anhänge

  • Bildschirmfoto von 2020-10-04 15-34-03.png
    Bildschirmfoto von 2020-10-04 15-34-03.png
    555,6 KB · Aufrufe: 72

dzim

Top Contributor
Das Problem ist das Font Scaling. Ich nehme mal an, hier wird ein 4k-Bildschirm oder so verwendet. Ich glaube Java hat unter Linux da mitunter immer noch etwas Probleme, das Font Scaling des Systems zu erkennen.

Welches Java und JavaFX verwendest du?

#edit: Kein JavaFX, sondern Swing. Sorry. Aber ich hatte mal gelesen, dass es ab einer bestimmten Version dann besser werden sollte. Ich recherchier noch mal.
 

dzim

Top Contributor
Auch wenn das JavaFX-spezifisch zu sein scheint, glaube ich aber, dass das hier auch für Swing gelten *könnte*...



Im folgenden wird auf den Scaling-Factor eingegangen und wie man ihn holen könnte. Auch für AWT/Swing. Aber i.d.R. immer nur für Windows...


Hier wird auch nochmal GDK_SCALE=2 verwendet, um manuell die Environment Variable zu setzen.
Find ich aber doof, da man dann im Vorfeld wissen muss, wie man wo scalen muss. Blöd, wenn man die App dann anderen geben möchte.
In dem Post verlinkt:
https://wiki.archlinux.org/index.php/HiDPI#Java_applications - ist zwar von Arch Linux, sollte aber auch für Ubuntu gelten.
 

Saylles

Mitglied
Leider auf den ersten Blick nichts brauchbares dabei.
Auf meinem Win PC ist das Problem nicht von daher wird es ja an dem Linux bzw. an dem Java Linux liegen.
Im übrigen ist auch das AWT betroffen.
 

dzim

Top Contributor
Klar. AWT/Swing wird im wesentlichen wie eine Mischpoke behandelt. Aus reiner Neugier: Passiert das mit JavaFX auch?

In Maven/Gradle die Dependencies auf JavaFX hinzufügen
https://openjfx.io/openjfx-docs/#maven / https://openjfx.io/openjfx-docs/#gradle
(JavaFX 15 ist aktuell und ist kompatibel zurück bis auf Java 11, kann also mit deinem installierten Java 14 auch verwendet werden.)

Oder Bell-Soft JDK in der Variante "Full" installieren, da ist JavaFX drin enthalten.

Java:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class MainWindow extends Application
{
    public static void main(
        final String... args)
    {
        launch(args);
    }
    
    @Override
    public void start(
        final Stage primaryStage)
    {
        final VBox root = new VBox(10);
        root.getChildren().addAll(new Button("Button"), new TextField(), new Label("Label"));
        
        final Scene scene = new Scene(root, 600, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}
 
K

kneitzel

Gast
Hast Du denn auch mal ausprobiert, die Settings laden zu lassen, wie es in dem Link beschrieben ist.

Also einfach in main vorab den folgenden Code einfügen:
Java:
try {
  UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
} catch( Exception e ) { e.printStackTrace(); }

Hintergrund ist, dass Java von sich aus mit eigenen Einstellungen daher kommt. Man kann über den UI Manager einiges setzen: Schriftarten, deren Größe u.s.w. Und es gibt eine Methodik, die eben versucht, die Settings aus dem System zu laden.

Ich habe so ein Problem auf meinem Ubuntu System nicht nachstellen können, aber den Unterschied kann ich aufzeigen:

WithAndWithoutUIManager.png

Es wird also deutlich: Es wird die Schriftart und Größe des Systems verwendet. Das wird auch noch deutlicher, wenn man Settings wie "Große Schrift" oder so aktiviert.

Daher wäre es aus meiner Sicht auf jeden Fall einen Versuch wert, dies einmal zu probieren.
 
K

kneitzel

Gast
Das ist etwas dubios. Gibt es irgend welche Fehlermeldungen auf der Console?

Ich kenne es so, dass er ggf. auf der Console noch Fehlermeldungen ausgibt, wenn etwas nicht stimmt. Also z.B. das ein Modul nicht geladen werden kann....

Ich habe mir extra für diesen Thread ein frisches Ubuntu aufgesetzt in einer VM. Letzte Patche installiert. Dann habe ich das openjdk 14 installiert aber auch das aktuelle JDK 14 von Oracle habe ich herunter geladen (deb geladen und installiert).

Bei mir funktioniert beides problemlos, also sowohl Aufruf über openjdk als auch mit Oracle Java ...

Edit: Es fehlte ihm das cranberry-gtk-module, daher gab es auch ein "sudo apt install libcanberra-gtk-module libcanberra-gtk3-module", aber das war für die Funktionalität nicht zwingend notwendig. Der Auszug vom Bildschirm entstand noch ohne dieses Modul.

Und dann auch eben genaue Versionen:
-> Ubuntu-20.04.1 habe ich installiert
-> Von Oracle: jdk-14.0.2_linux-x64_bin.deb (installation mit "sudo dpkg -i ...")
-> Openjdk installiert mit sudo apt-get install openjdk-14-jdk-headless (Ist damit auch im Pfad).

Aufrufe waren einfach
- java Test.java (openjdk Aufruf)
- /usr/lib/jvm/jdk-14.0.0/bin/java Test.java (Oracle JDK Aufruf)
 
Zuletzt bearbeitet von einem Moderator:

Saylles

Mitglied
Lässt sich bei mir auch nicht reproduzieren. Ich habe ebenfalls mir ein VM system eingerichtet und dort funktionierte es auf Anhieb.
Bekomme langsam die Befürchtung das es am Laptop liegen könnte bzw. am kernel von Linux die ein kleines Problem mit dem CPU hat bzw. APU.
Ubuntu lief bis zur 2020.09 Version nicht auf dem Laptop (AMD APU -.-).
Wäre das vorstellbar ?
 
K

kneitzel

Gast
Also mich wundert etwas, dass Eclipse und co keine Probleme haben. Klar - Eclipse nutzt nicht awt/Swing sondern SWT, aber unter dem Strich läuft doch sehr viel immer auf die gleichen Schnittstellen hinaus.
Und die Anzeige selbst scheint zu klappen - daher frage ich mich, wo hier das Problem liegen könnte. Im Console Fenster von Eclipse kommt keine weitere Ausgabe?

Im Augenblick habe ich aber auch kein Ansatz, wie man das jetzt weiter verfolgen könnte. Ich würde ggf. einmal ein Live System starten um es dann auf dem Live System zu probieren. Evtl. ist irgend etwas an der Konfiguration zerhauen? Oder es gibt ein Problem mit Ubuntu / Unity?

Als ich noch mit Linux unterwegs war (schon paar Monate her - jetzt arbeite ich auch auf Win 10 und habe nur noch WSL2 Systeme zusätzlich aufgesetzt), war eine meiner Aktivitäten das Austesten diverser Distributionen. Da wurde eigentliches jedes WE eines meiner Systeme neu aufgesetzt - dank vernünftiger Synchronisation der Daten war das immer eine schnelle und unkomplizierte Sache ... gerade bei problematischer Hardware habe ich immer mehrere Distributionen im Detail ausgetestet. (Auf dem MacBook Air 11" von 2014 war dann Debian am Ende immer das Beste. Da war zwar vieles händisch einzurichten / anzupassen, aber Ubuntu, openSuSE und einige Exoten, die ich probiert habe, hatten dann in einzelnen Punkten immer wieder Probleme, die dann auch manuell schwer zu beheben waren - und ich nur ein kurzes Zeitfenster für die Konfiguration vorgesehen hatte!) Das wird aber für Dich weniger interessant sein, es sei denn, Linux wäre für Dich auch zusätzlich eine nette Spielerei ... Daher bringe ich das nicht wirklich als Alternative.

Bezüglich AMD APU und so habe ich keinerlei Erfahrungen. Daher kann ich da leider keine konkreten Tipps / Hinweise geben.
 
K

kneitzel

Gast
Ja, das ist problemlos gegangen. Das hatte mich auch zuerst gewundert, aber das war halt das JDK 14 Paket, das er mir bei Eingabe von javac angeboten hatte ... Und bei der Test VM war ich erst einmal zu faul zu schauen, ob es ein openjdk-14-jdk geben würde ... War halt eine Minimierung des Aufwands bei einer Test VM nur für einen Forum-Thread. Wäre es nicht gegangen, dann hätte ich noch etwas rumprobiert, aber da alles funktioniert hat, war alles ok für mich ...

Ggf. ist das Problem mit dem fehlenden cranberry-gtk-module darauf zurück zu führen.... Aber das hat mich bisher nicht wirklich interessiert :)

Edit:
Einfach mal ganz aus Interesse:
mittels apt purge openjdk und cranberry gtp modul Pakete runter geschmissen, noch ein apt autoremove hinterher um nicht mehr benötigte Abhängigkeiten zu entfernen ....
Nach einem apt install openjdk-14-jdk fehlen das cranberry-gtk-module - das ist also unabhängig. Wurde auch nicht als empfohlenes Paket angeführt.

Ansonsten scheint da erst einmal nichts zwingend benötigt worden zu sein, was da sonst mit installiert wurde.

Ansonsten auch einmal aus reiner Neugierde noch einmal die Pakete runter geworfen. -headless ist bei dem anderen Paket auch als Abhängigkeit mit enthalten. Daher noch einmal erst headless installiert um zu schauen, was die Differenz ausmacht:

Die folgenden NEUEN Pakete werden installiert:
libice-dev libpthread-stubs0-dev libsm-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxt-dev openjdk-14-jdk x11proto-core-dev
x11proto-dev xorg-sgml-doctools xtrans-dev

Es sind also schon ein paar Pakete, die da mehr dazu kommen auch aus X11 Sicht. Aber das diese gefehlt haben scheint nicht interessiert zu haben. Die Frage ist maximal, ob das Oracle Paket da irgendwas mitgeliefert hat, aber Abhängigkeiten hatte das Paket nicht. Das hatte ich als erstes installiert und danach gab es keine unerfüllten Abhängigkeiten ...

Aber egal - genug Zeit investiert in diesen Punkt :)
 
Zuletzt bearbeitet von einem Moderator:

Saylles

Mitglied
So ich habe die jdk´s runter und wieder rauf bliblablubb, ende vom Lied ... Windows 10.
Dauerte zwar ewig bis alles eingerichtet war aber dafür läuft jetzt alles so wie es soll.
Ich danke euch vielmals für eure Mühen auch wenn ich leider nicht das gewünschte Ergebnis bekommen habe.
 

dzim

Top Contributor
@Saylles vielleicht probierst du es mal jetzt von Win10 aus auch in einer VM. Ich würde nach all dem auch vermuten, dass bei dir ein Treiber-Problem vorlag. Du hättest natürlich in der Treiberauswahl, mal auf einen anderen als den default-Treiber gehen können, aber dafür ist es ja jetzt eh zu spät :D.

Btw. Ich nutze Linux/Ubuntu als meine tagtägliche Umgebung auf Arbeit (zu Hause Win10 wegen zocken... ;)) und hatte diese Art von Problem bei all meinen SWT- und JavaFX-Projekten nie. OK, AWT/Swing habe ich schon seit mehr als einem Jahrzehnt nicht mehr in einem Projekt verwendet, höchstens hier mal für eine Demo, wie man das mit JavaFX verbinden kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
Y Listview Textfield vergrößern, Schrift anpassen AWT, Swing, JavaFX & SWT 0
M Schrift "malen" AWT, Swing, JavaFX & SWT 11
V Wie kann ich die Schrift in Java vollkommen anzeigen AWT, Swing, JavaFX & SWT 1
S Schrift ändern in JDialog AWT, Swing, JavaFX & SWT 3
B Swing Transparentes JPanel, Schrift verschmiert AWT, Swing, JavaFX & SWT 22
K Swing Schrift in Kopfzeile von JComboBox über ListCellRenderer ändern AWT, Swing, JavaFX & SWT 2
I Schrift und Farbe formatieren, und zwar pro Linie... AWT, Swing, JavaFX & SWT 4
S kursive Schrift in JTable AWT, Swing, JavaFX & SWT 4
J Swing Monospace-Schrift für alle Systeme AWT, Swing, JavaFX & SWT 3
D SWT TabItem Farbe der Schrift ändern AWT, Swing, JavaFX & SWT 3
T SWT Tabellen Kopf Schrift bearbeiten AWT, Swing, JavaFX & SWT 2
Saxony SWT Right To Left (arabische Schrift) AWT, Swing, JavaFX & SWT 8
D schrift wird nicht vollständig im button angezeigt AWT, Swing, JavaFX & SWT 4
D Schrift im Programm ändern? AWT, Swing, JavaFX & SWT 2
E JTable letzte Zeile in Fett schrift? AWT, Swing, JavaFX & SWT 3
M Schrift in Menüleiste mit Office L&F AWT, Swing, JavaFX & SWT 4
O JButton Rand um Schrift unsichtbar machen AWT, Swing, JavaFX & SWT 2
D Wie vergrößere ich die schrift auf einem Jbutton AWT, Swing, JavaFX & SWT 2
G schrift eigenschaftenmodul AWT, Swing, JavaFX & SWT 3
T Die Schrift in verschiedenen Farben blinken zu lassen AWT, Swing, JavaFX & SWT 2
L Schrift umranden AWT, Swing, JavaFX & SWT 2
G JList Schrift ist schwer zu erkennen AWT, Swing, JavaFX & SWT 5
C Schrift mit Schatten bzw Antialiasing AWT, Swing, JavaFX & SWT 2
J Vertikale Schrift im AWT AWT, Swing, JavaFX & SWT 4
Z JTextPane (text/html): Schrift festlegen AWT, Swing, JavaFX & SWT 5
Z bei kleinen Buttons verschwindet Schrift, obwohl Platz wäre AWT, Swing, JavaFX & SWT 5
G Schrift vertikal ausrichten AWT, Swing, JavaFX & SWT 2
Ernesto95 JavaFX JavaFX GUI mit sehr vielen Update requests AWT, Swing, JavaFX & SWT 4
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
E Java-TexturePaint sehr langsam AWT, Swing, JavaFX & SWT 9
Tommy135 JFileChooser ist sehr langsam AWT, Swing, JavaFX & SWT 13
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
A JavaFX Sehr viele Exceptions bei Taschenrechner mit JavaFx AWT, Swing, JavaFX & SWT 2
RalleYTN Modaler Dialog und JTree Node mit sehr... seeeeehr vielen Elementen AWT, Swing, JavaFX & SWT 6
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
J JavaFX Rendering von Canvas sehr langsam AWT, Swing, JavaFX & SWT 2
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
L [Slick2d] Sidescroller/Hintergrundbild sehr langsam AWT, Swing, JavaFX & SWT 3
E JavaFX Sehr viel und unterschiedlich Großen Inhalt auf einer "Fläche" ... Umsetzbar ? AWT, Swing, JavaFX & SWT 3
M JTable mit wechselnden Spalten - sehr Langsam AWT, Swing, JavaFX & SWT 5
E 3D-Grafik JOGL (lädt sehr lange) AWT, Swing, JavaFX & SWT 20
P sehr doll äußerst immens dringlich.... JFrame füllt sich nicht!!! AWT, Swing, JavaFX & SWT 5
R Image laden sehr langsam AWT, Swing, JavaFX & SWT 7
J Sehr schnell Text anzeigen? AWT, Swing, JavaFX & SWT 15
S Swing Swing macht sehr seltsame Zeichnungen. AWT, Swing, JavaFX & SWT 13
B JTree - sehr individuell AWT, Swing, JavaFX & SWT 3
K Swing Spiel flackert sehr häufig AWT, Swing, JavaFX & SWT 2
J 2D-Grafik JPanel reagiert sehr träge AWT, Swing, JavaFX & SWT 3
V Swing remove(Component) blockiert Thread sehr lange. AWT, Swing, JavaFX & SWT 6
K Graphics.drawImage() sehr schnell AWT, Swing, JavaFX & SWT 5
A Swing JTextPane sehr langsam AWT, Swing, JavaFX & SWT 6
T JList / ListSelectionListener / sehr eigenartig AWT, Swing, JavaFX & SWT 11
R JPanel sehr große JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
N Swing sehr großes Bild skalieren AWT, Swing, JavaFX & SWT 8
R JTable für sehr viele Daten sehr langsam AWT, Swing, JavaFX & SWT 20
R Ich suche einen sehr simplen. AWT, Swing, JavaFX & SWT 2
G Sehr kleine JButtons mit Icon oder Beschriftung AWT, Swing, JavaFX & SWT 2
S Bilder werden sehr langsam geladen AWT, Swing, JavaFX & SWT 4
W gridbaglayout streckt sich zu sehr. AWT, Swing, JavaFX & SWT 17
doctus img.getScaledInstance() sehr rechenintensiv und langsam? AWT, Swing, JavaFX & SWT 3
ARadauer spalten überschriften von jtable sehr klein AWT, Swing, JavaFX & SWT 2
C JButton + JFrame Reaktion SEHR langsam. AWT, Swing, JavaFX & SWT 2
S GridLayout mit sehr großen Abständen AWT, Swing, JavaFX & SWT 3
E sehr simpel AWT, Swing, JavaFX & SWT 6
MiMa JavaFX Fenstertitel zu klein. AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
M editorPane bleibt zu klein trotz setPage AWT, Swing, JavaFX & SWT 6
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
N GUI zeigt alles klein an. AWT, Swing, JavaFX & SWT 7
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
S LayoutManager TextField verschwindet / wird klein AWT, Swing, JavaFX & SWT 4
A Panel zu klein AWT, Swing, JavaFX & SWT 14
R Swing Komponenten klein angezeigt AWT, Swing, JavaFX & SWT 10
Y Swing GridbagLayout JTextfield zu klein AWT, Swing, JavaFX & SWT 5
N Fenster beleiben klein AWT, Swing, JavaFX & SWT 4
N SWT Text pack() macht Text zu klein AWT, Swing, JavaFX & SWT 2
K JFrame zu klein AWT, Swing, JavaFX & SWT 4
B scrollbare jtoolbar sobald fenster zu klein wird AWT, Swing, JavaFX & SWT 5
L Button groß bzw. klein ziehen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben