SWT und Linux

DerGrinch

Mitglied
Hallo liebe Java Gemeinde,

ich habe vor kurzem ein Programm in Java mit Hilfe von SWT geschrieben und war auch sehr glücklich als
es unter Windows nach einer Weile lief. Jetzt wollte ich das Programm auch für Linux klar machen und hab
deshalb die swt.jar in meinem Programm vor der Erstellung des .jar Files geändert. Das hat auch gut
funktioniert, heißt die .jar datei lässt sich unter Ubuntu ausführen.

Jetzt war ich aber äußerst enttäuscht als ich gesehen hab, dass die Schrift anders dargestellt wird und sich
dadurch das ganze Aussehen (zum schlechteren) verändert. Schlimmer ist aber, dass die Buttons nicht so
richtig reagieren, und Bilder in Buttons abschneiden.

Ich wollte hier mal nachhorchen ob das normal ist, oder ob ich was falsch gemacht habt, bzw. was das Beste
wäre um mein Programm sowohl für Windows als auch für Linux (und am besten noch Mac) lauffähig zu machen!

Liebe Grüße,

Jan
 
G

Gast2

Gast
Hallo liebe Java Gemeinde,

ich habe vor kurzem ein Programm in Java mit Hilfe von SWT geschrieben und war auch sehr glücklich als
es unter Windows nach einer Weile lief. Jetzt wollte ich das Programm auch für Linux klar machen und hab
deshalb die swt.jar in meinem Programm vor der Erstellung des .jar Files geändert. Das hat auch gut
funktioniert, heißt die .jar datei lässt sich unter Ubuntu ausführen.

Jetzt war ich aber äußerst enttäuscht als ich gesehen hab, dass die Schrift anders dargestellt wird und sich
dadurch das ganze Aussehen (zum schlechteren) verändert. Schlimmer ist aber, dass die Buttons nicht so
richtig reagieren, und Bilder in Buttons abschneiden.

Ich wollte hier mal nachhorchen ob das normal ist, oder ob ich was falsch gemacht habt, bzw. was das Beste
wäre um mein Programm sowohl für Windows als auch für Linux (und am besten noch Mac) lauffähig zu machen!

Liebe Grüße,

Jan

SWT nimmt halt die Systemschrift... Und wenn du keinen anständigen LayoutManager verwendest kommt es zu solchen Probleme...
 

DerGrinch

Mitglied
Hm... ich bin mir erlichgesagt garnicht sicher was mit Lauyout Manager gemeint ist.
Du meinst wahrscheinlich nicht GridLayout und Co., oder?
Wenn das etwas zusätzliches zu Eclipse ist, dann ist meine Antwort wohl: gar keinen.
Hab das einfach alles runterprogrammiert :)
 
G

Gast2

Gast
Hm... ich bin mir erlichgesagt garnicht sicher was mit Lauyout Manager gemeint ist.
Du meinst wahrscheinlich nicht GridLayout und Co., oder?
Wenn das etwas zusätzliches zu Eclipse ist, dann ist meine Antwort wohl: gar keinen.
Hab das einfach alles runterprogrammiert :)

Doch GridLayout und co mein ich ;)...
Mach mal 2 Bilder windows und linux...
Und zeig mal bissl code...
Außerdem soviel ich weiß ist das swt.jar unterschiedlich unter windows und linux...
 

DerGrinch

Mitglied
So... sorry... das hat jetzt etwas gedauert :)

Im Anhang sind 4 Screenshots:

1: Hauptfenster in Windows 7
2: Editor-Tab in Windows 7
3: Hauptfenster Linux Ubuntu 9.10
4: Editor-Tab in Linux Ubuntu 9.10

In der Darstellung des Prozessors sind kleine Verschiebungen drin, was ärgerlich aber
garnicht mal das Hauptproblem meiner Meinung nach ist.

Viel schlimmer und auch rätselhafter finde ich dass die Buttons oben drüber (wie play, stop, usw.)
nicht reagieren wenn sie unter Linux gedrückt werden.

Im Editor Tab werden auch die Grafiken in den Buttons abgeschnitte, was aber wahrscheinlich
zu handeln ist, wenn ich den Buttons mehr Platz gebe.

Meine Fragen sind also: Gibt es eine Schriftart die ich nutzen kann, damit es keine Verschiebungen
zwischen den Betriebssystemen gibt? Warum wollen die Buttons unter Linux nicht richtig? Und gibt es vielleicht einen anderen Programmier-Ansatz mit dem diese Probleme alle hinfällig werden?

Liebe Grüße,

Jan
 

Sonecc

Gesperrter Benutzer
War etwas umständlich beschrieben was hier stand...


SWT sieht nicht auf jedem System gleich aus, weil es versucht möglichst systemnahe Darstellungen zu erreichen. Daher auch der Unterschied in der Schrift.
Desweiteren funktionieren nicht alle Möglichkeiten von SWT auf allen Systemen. Was auf Windows geht, muss so nicht in Linux laufen. Das liegt eben daran, dass SWT mit System resourcen arbeitet und auf Windows optimiert ist.

Was soll das mit den Buttons bedeuten?
Tritt eine Fehlermeldung auf?
Code?
 
Zuletzt bearbeitet:
G

Gast2

Gast
War etwas umständlich beschrieben was hier stand...


SWT sieht nicht auf jedem System gleich aus, weil es versucht möglichst systemnahe Darstellungen zu erreichen. Daher auch der Unterschied in der Schrift.
Desweiteren funktionieren nicht alle Möglichkeiten von SWT auf allen Systemen. Was auf Windows geht, muss so nicht in Linux laufen. Das liegt eben daran, dass SWT mit System resourcen arbeitet und auf Windows optimiert ist.

Was soll das mit den Buttons bedeuten?
Tritt eine Fehlermeldung auf?
Code?

Warum sollte SWT auf Windows optimiert sein?

Wie gesagt er gibt mehrere swt.jar für jedes OS ein eigenes also musst du sicherstellen auch das richtige mit auszuliefern.

The SWT FAQ
 
Zuletzt bearbeitet von einem Moderator:

DerGrinch

Mitglied
@Sonecc: Mir ist klar, dass die Sachen verschieden aussehe auf verschiedenen Platformen, aber ich möchte diesen Unterschied möglichst minimieren... deshalb die Frage hier im Forum, was man am besten machen kann um ein Programm zu schreiben, dass mit SWT annähernd gleich aussieht auf dem verschiedenen BS.

@Sonecc: bei den Buttons kommen keine Fehlermeldungen, sondern manche reagieren unter Linux einfach nicht... könnte das vielleicht an den Bildern in den Buttons liegen?

@SirWayne: Bei der Linux version habe ich die Linux swt.jar datei genutzt, daran sollte es nicht liegen.
 

Sonecc

Gesperrter Benutzer
Warum sollte SWT auf Windows optimiert sein?

Habe ich gesagt, war aber nicht zwingend richtig. Richtig ist, dass SWT auf Windows systemen am besten läuft. Bei Linux Systemen, sowie auf Mac Systemen müssen einige Funktionen erst emuliert werden (Beispiel dafür ist Z-Ordering) oder sind erst gar nicht vorhanden. Manche Funktionen gehen außerdem nur, wenn bestimmte Treiber verwendet werden (Beispiel Motif und XPrint) oder wenn (unter Linux) bestimmte GTK Versionen laufen und und und...
Daher meine Empfehlung SWT hauptsächlich auf Windows Systemen zu verwenden und für andere Systeme über eine Einbindung von SWING nachzudenken (kann man ja innerhalb von SWT verwenden, aber auch hier nicht auf allen Systemen)


Was die Buttons betrifft..
Ohne Code, kann man da nix sagen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing Code funktioniert auf Windows aber nicht Linux... AWT, Swing, JavaFX & SWT 3
S (Swing)Vollbild anzeigen unter Linux/Mac AWT, Swing, JavaFX & SWT 6
T JFrame Icon unter Linux/Ubuntu AWT, Swing, JavaFX & SWT 11
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
O Problem mit JFrame auf Linux Mint 13 Maya in VirtualBox AWT, Swing, JavaFX & SWT 3
R Problem mit TrayIcon unter Windows/Linux AWT, Swing, JavaFX & SWT 7
S GUI aussehen unter Windows und Linux (und Mac) AWT, Swing, JavaFX & SWT 13
J Applet Linux(-(k)ubuntu-)-Firefox-Java-Plugin - Fensterschließprobleme die bei Windows so nicht auftreten AWT, Swing, JavaFX & SWT 4
Ivan Dolvich [Linux] JFileChooser sieht komisch aus... AWT, Swing, JavaFX & SWT 12
G SWT Control.print(gc) funktioniert in Win, in Linux nicht AWT, Swing, JavaFX & SWT 4
F AWT MouseMotionListener e.getButton() ist immer 0 unter Linux und Windows AWT, Swing, JavaFX & SWT 6
F AWT DnD von Dateien mit Sonderzeichen funktioniert unter Linux nicht AWT, Swing, JavaFX & SWT 3
P Linux Fensterhintergrund AWT, Swing, JavaFX & SWT 2
H Y-Position mit get-/setLocation() unter Linux/Enlightement16 inkonsistent AWT, Swing, JavaFX & SWT 3
C Swing Linux mag mein Swing-repaint() nicht... AWT, Swing, JavaFX & SWT 7
N JDesktop unter Linux AWT, Swing, JavaFX & SWT 4
FuriKuri LookAndFeel in Linux setzen AWT, Swing, JavaFX & SWT 16
P Swing [gelöst/erledigt] Gleicher Code läuft unterschiedlich unter Linux und Windows AWT, Swing, JavaFX & SWT 5
M Probleme unter Linux AWT, Swing, JavaFX & SWT 7
E Hat Netbeans unter Linux kein Designer für Swing? AWT, Swing, JavaFX & SWT 3
S KeyEvents in Linux und Windows AWT, Swing, JavaFX & SWT 14
L Problem mit "setVisible" unter LINUX AWT, Swing, JavaFX & SWT 5
G SWT Button mit Image und ohne Rand unter Linux? AWT, Swing, JavaFX & SWT 7
D AWT drawString funktioniert nicht unter Linux AWT, Swing, JavaFX & SWT 7
Noar IllegalComponentStateException unter Gnu/Linux AWT, Swing, JavaFX & SWT 2
M Keine Buttons oder sonstige Objekte in JFrame unter Linux AWT, Swing, JavaFX & SWT 4
F AWT Programm unter Linux anders als unter Windows ! AWT, Swing, JavaFX & SWT 8
M JDialog unter win und linux unterschiedliche größe nötig? AWT, Swing, JavaFX & SWT 4
F Schriftarten unter Windows und Linux AWT, Swing, JavaFX & SWT 6
T Tray-Icon-Menü unter Linux AWT, Swing, JavaFX & SWT 10
J JFrame Icon unter Linux AWT, Swing, JavaFX & SWT 2
I Drag and Drop funktioniert unter Linux nicht AWT, Swing, JavaFX & SWT 6
B Problem mit ImageIcon/Swing in Linux AWT, Swing, JavaFX & SWT 6
S SWT-Anwendung als startfähiges Jar unter Linux AWT, Swing, JavaFX & SWT 4
M SWT Darstellung Linux / Win verschieden? AWT, Swing, JavaFX & SWT 4
T Popup-Menü unter Linux AWT, Swing, JavaFX & SWT 2
S JFrame prob unter linux AWT, Swing, JavaFX & SWT 4
K Tip: Gui basierende Javaprogramme unter Linux ohne X AWT, Swing, JavaFX & SWT 16
B Fokus Problem unter Linux AWT, Swing, JavaFX & SWT 7
B setExtendedState klappt net unter linux AWT, Swing, JavaFX & SWT 2
M FileSystemView und Linux AWT, Swing, JavaFX & SWT 2
Z setCursor unter Linux AWT, Swing, JavaFX & SWT 7
O SWT-Anwendung für Windows und Linux verteilen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben