• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Java - GUI

Mitglied seit
12.04.2003
Beiträge
1.806
Reaktionen
0
Hi,
also ich werde für eine Software eine GUI programmieren müssen und zwar in Java. So.. mir wurde auch gesagt (von Menschen die sich nicht mit Programmiersprachen auskennen und daher nur das weitergeben was sie gehört haben), dass es möglichst in Eclipse sein soll (ich kann mich leider momentan nicht direkt an die Leute wenden, die es entschieden haben).

Mit Eclipse wurde doch sicherlich SWT gemeint sein, etwas anderes wäre ja sinnlos.
Nachdem ich jetzt versucht habe mich in dieses Thema einzuarbeiten, habe ich noch ein paar Fragen:

Ist es komplett egal, wie ich meine Software vertreibe und wie viel Code ich offenlege, wenn ich Swing nutze? Und wie ist es bei SWT? Ich glaube zwar, dass es bei beiden egal ist, bin mir aber nich 100%ig sicher.

Mir wurde ebenfalls gesagt, dass ich aufpassen solle welche Pakete(Bibliotheken?) ich nutze, da sich einige nicht sehr gut miteinander kombinieren lassen... Damit können die doch nur die Verknüpfung von z.B. Swing und SWT meinen, oder? Oder gibt es innerhalb von Swing noch unterschiedliche Pakete? (sorry, ich kenne mich mit Java und seinen Paketen noch nicht so gut aus).

Und natürlich: was würdet ihr benutzen? Ich habe gelesen, dass Swing eigentlich nicht besonders intuitiv und gut zu programmieren sein soll und dass es nicht mehr geupdated wird, es aber im Gegensatz zu SWT Plattformunabhängig sein soll und es besseres Look & Feel hat. Daher würde ich mich wohl für Swing entscheiden...


(sorry für den wirren Post)


edit: ach ja und wie sieht es mit dem Netbeans Builder aus? Bisher habe ich GUIs immer programmiert, da ich noch von WYSIWYG Editoren von Html im Kopf habe, dass sie zwar einfach zu bedienen sind, aber schlimmen Code zustande bringen (ist aber schon ~8 Jahre her, dass ich das gehört hab)
 
Zuletzt bearbeitet:
Mitglied seit
02.09.2002
Beiträge
3.281
Reaktionen
106
Hi,

swt und swing unterscheiden sich zunächst erstmal dadurch, dass swing mit java ausgeliefert wird, während swt eine externe bibliothek ist. Also, jeder der java hat, hat auch swing, um swt musst du dich kümmern.
Bzgl der Plattformunabhängigkeit: swt verwendet nativen code, aber der ist für alle Plattformem verfügbar. D.h du musst für Windows und Linux unterschiedliche swt.jars ausliefern.

Kombinieren lassen? Äh. Warum sollte man das wollen?

zu deiner letzten Frage: Ich würde swt benutzen und mit Blick auf deine geistige Gesundheit würde ich dir auch zu swt raten.
Auf Swing sollte man meiner Meinung nach nur zurückgreifen, wenn das ausliefern von einem zusätzlichen jar schon zu viel Aufwand ist.
 
Mitglied seit
01.06.2007
Beiträge
761
Reaktionen
0
Ich benutze Netbeans und den eingebauten GUI Builder. Für nicht allzu komplexe GUIs ist das völlig OK.

Wenn Du garantierte plattformunabhängigkeit willst und keinen Bock auf zusätzliche JARs hast, nimm Swing. Ich hab damit bisher alles umsetzen können...
 
Mitglied seit
12.04.2003
Beiträge
1.806
Reaktionen
0
zu deiner letzten Frage: Ich würde swt benutzen und mit Blick auf deine geistige Gesundheit würde ich dir auch zu swt raten.
Auf Swing sollte man meiner Meinung nach nur zurückgreifen, wenn das ausliefern von einem zusätzlichen jar schon zu viel Aufwand ist.

Du hast in deinem Post nur die Vorteile von Swing genannt, warum empfiehlst Du SWT?
Und die swt.jars sind dann einfach die Bib. Dateien oder so? Also das ist nichts, worum ich mich kümmern bzw was ich schreiben muss.

Wie sieht es denn bei den beiden mit den Lizenzen aus? Könnte ich mit beiden auch Software schreiben, die ich kostenpflichtig verkaufe und von der kein Code sichtbar ist?
 
Mitglied seit
12.04.2003
Beiträge
1.806
Reaktionen
0
Jo ich weiß. Deswegen habe ich auch angenommen, dass die von der Eclipse-Foundation programmierte Bib SWT gemeint war.

Ja... ich glaube ich würde mich dann auch dafür entscheiden, aber wie sieht es mit den Lizenzen aus?
 
Mitglied seit
12.04.2003
Beiträge
1.806
Reaktionen
0
ja hab ich mir natürlich schon durchgelsen, aber... naja ich würde daraus wie gesagt schließen, dass ich alles was ich will mit SWT programmieren kann und es für Geld verkaufen kann und Quellcode nicht freigeben muss... ich brauche nur ein Bestätigung ^^
 
Mitglied seit
01.07.2000
Beiträge
1.062
Reaktionen
0
Ich kann mir gut vorstellen, dass du deine GUI auf Basis der Eclipse Rich Client Platform schreiben sollst. Wer schreibt denn heute bitte noch reine SWT / Swing Applications per Hand zu Fuß? Eclipse RCP nimmt dir eigentlich alles ab und du bekommst super schnell super schöne GUIs damit hin. Ein sehr gutes Tutorial gibts hier:

http://www.ralfebert.de/eclipse_rcp/EclipseRCP.pdf
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.664
Reaktionen
10.267
Für ne kleine Anwendung mit OSGi rumschlagen? Sorry, aber RCP ist wirklich nicht für alles gut... SWT kann man mit nem schicken Gui builder recht schnell und einfach selber basteln - viel mehr nimmt einem RCP da auch nicht ab...
 
Mitglied seit
12.04.2003
Beiträge
1.806
Reaktionen
0
Puh ist das anstrengend ey... sitze jetzt schon seit bestimmt 2 Stunden daran Graphen in meinem Programm anzeigen zu lassen, bekomme es aber nicht hin.

Wie gesagt habe ich mich jetzt erstmal für SWT entschieden (ohne JFace oder irgendwas anderes). Die bestene Graphen Bibs sind wohl JFreeChart und SWTChart.

So. Weil SWTChart ja die angenehmere Bib sein soll, da es direkt mit SWt geschrieben ist habe ich mich dafür entschieden.
Mit dem Code:
Code:
package com.example.swt.widgets;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.swtchart.Chart;

public class FirstSWTApplication {

	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
	
		GridLayout layout = new GridLayout(3,false);
		shell.setLayout(layout);
	
		Chart chart = new Chart(shell, SWT.NONE);

		shell.open();
		
		while(!shell.isDisposed()){
			if(!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}	
}
Wird das produziert:
FOC53LsEgj.jpg


Habe schon Ewigkeiten versucht den Fehler zu finden, aber nichts ist dabei rausgekommen.

Dann habe ich versucht JFreeChart zu nutzen, habe jfreechart-1.0.9-swt.jar gedownloaded, das file in den plugin Ordner von Eclipse getan und versucht einige Klassen zu importieren (z.B. import org.jfree.chart.JFreeChart; ), aber dann erscheint die Fehlermeldung "cant resolve org.jfree".

Wahrscheinlich ist es total der Schwachsinn den ich produziere, aber ich finde einfach kein einziges Tutorial, dass mit hilft JFreeChart mit SWT und Eclipse zu nutzen.

So... hat jemand mit einer der beiden Bibs Erfahrungen und kann mir weiterhelfen?
 
Mitglied seit
21.08.2010
Beiträge
8.010
Reaktionen
1.107
Ich hab zwar null Erfahrung damit, schlage mich aber auch mit Java herum und stehe vor den gleichen Probs. Also ... ich melde mich sobald ich mehr weiß.
 

skY

Mitglied seit
03.01.2006
Beiträge
301
Reaktionen
16
Dann habe ich versucht JFreeChart zu nutzen, habe jfreechart-1.0.9-swt.jar gedownloaded, das file in den plugin Ordner von Eclipse getan und versucht einige Klassen zu importieren (z.B. import org.jfree.chart.JFreeChart; ), aber dann erscheint die Fehlermeldung "cant resolve org.jfree".

Wahrscheinlich ist es total der Schwachsinn den ich produziere, aber ich finde einfach kein einziges Tutorial, dass mit hilft JFreeChart mit SWT und Eclipse zu nutzen.

So... hat jemand mit einer der beiden Bibs Erfahrungen und kann mir weiterhelfen?

wenn das eine normale library ist, dann hat die nix im plugin ordner zu suchen.

die bindest du folgendermaßen in eclipse ein:
rechtsklick auf dein projekt im projektexplorer
build path => add external archive
dort waehlst du dann die entsprechenden .jar (oder .zip) dateien aus
 
Mitglied seit
12.04.2003
Beiträge
1.806
Reaktionen
0
Für ne kleine Anwendung mit OSGi rumschlagen? Sorry, aber RCP ist wirklich nicht für alles gut... SWT kann man mit nem schicken Gui builder recht schnell und einfach selber basteln - viel mehr nimmt einem RCP da auch nicht ab...

Hm ich glaube ich hätte mal auf deinen Rat hören sollen. Sitze jetzt seit drei Tagen an RCP dran und kapiere ca. 0%. Also an sich würde ich glaube ich gerne zu SWT + JFace zurückkehren, nur hat man da auch die Möglichkeit gut nen Text Editor einzubinden und xls Dateien darzustellen und editierbar zu machen?

Worin liegt eigentlich genau der Vorteil an RCP? Daran, dass ich verschiedene Plug-ins zur verfügung habe? Und was genau machen diese Plug-ins? Sind das einfach nur Klassen Bibs oder sind das Erweiterungen die aus Elcipse mehr Funktion herausholen?
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.664
Reaktionen
10.267
Hm ich glaube ich hätte mal auf deinen Rat hören sollen. Sitze jetzt seit drei Tagen an RCP dran und kapiere ca. 0%. Also an sich würde ich glaube ich gerne zu SWT + JFace zurückkehren, nur hat man da auch die Möglichkeit gut nen Text Editor einzubinden und xls Dateien darzustellen und editierbar zu machen?
Klar geht das - gibt für beides zig Libs und fertige jars.
Worin liegt eigentlich genau der Vorteil an RCP? Daran, dass ich verschiedene Plug-ins zur verfügung habe? Und was genau machen diese Plug-ins? Sind das einfach nur Klassen Bibs oder sind das Erweiterungen die aus Elcipse mehr Funktion herausholen?
Um RCP zu verstehen muss man auch OSGI verstehen. OSGI kann dynamisch ALLES was dein Programm macht nachladen, entladen, neu laden, inklusive der JavaVM und des Teils der das nachladen macht selber. DAfür wird alles in sogenannte Plugins aufgeteilt.
Das was hier RCP genannt wird ist letzlich eine OSGI-Anwendung die ein fertiges Framework anbietet, das zb die Service-Registry (der Teil der das nachladen verwaltet), ein GUI-Framework (SWT) und diverse andere Dinge anbietet, die man aus Eclipse kennt. Damit man damit umgehen kann muss man aber schon verstehen wie OSGI funktioniert - sonst ist man irgendwann total frustriert.
 
Oben