SWT Tabellen-Layout in StyledText?

ceer

Mitglied
Hi!

Ich habe ein kleines Programm, welches eine Menge an Zahlen berechnet, die in mehreren Tabellen ausgegeben werden sollen.
Da die Zahlen unterschiedlich lang sind, würde ich diese gerne in einem einheitlichen Tabellen-Layout ausgeben, bei der dann jede Zelle eine feste größe hat und sich somit nicht alles verschiebt.

Kann man sowas irgendwie realisieren (z.B. in einem StyledText-Feld) ?

Danke schon mal!!
 

damtre

Aktives Mitglied
Du willst Zahlen in einem Tabellen-Layout anlegen?
Ich nehme an du redest davon, dass du eine Komponente suchst die es dir ermöglicht deine Daten in einer Art Tabellenstil anzuzeigen...
Da gibt es von Swing doch zum einen die JTable oder auch eine JEdtiorPane/JTextPane bei der du mit ein wenig HTML und einem Tabellengrundgerüst jeder Zelle nur noch deinen Inhalt, also deine berechneten Zahlen mit geben kannst.
Du könntest dir auch einfach ein JPanel mit einem GridLayout anlegen, deine Werte jeweils in ein JLabel schreiben und dieses JLabel als Komponente dem JPanel mit dem Gridlayout übergeben. Dabei wären dank des GridLayouts alle deine Zellen gleich groß...

Möglichkeiten dafür kann es mehrere geben...

Hier noch ein paar hilfreiche Links:
1. JEditorPane/JTextPane
2. JTable
3. GridLayout

Grüße
 
G

Gastredner

Gast
SWT, nicht Swing!

Muss es unbedingt eine Text-Komponente sein? Wenn du deine Ergebnisse in HTML verpacken könntest, könntest du dieses einfach über eine Browser-Komponente anzeigen lassen und brauchst dich nicht selbst darum zu kümmern, irgendwo Tabellen einzusetzen.
 

ceer

Mitglied
Das ganze ist eine Windows-Anwendung, also mit html sollte das nicht funktionieren, oder?
Hm, also ein Grid-layout erzeugen und dieses dann in ein Textfeld ausgeben (schön formatiert) funktioniert nicht?
 

damtre

Aktives Mitglied
Oh SWT, das habe ich im Eifer übersehen...

Also ich denke auch, dass du, wie Gastredner schon sagte, das Browser Widget ausprobieren solltest.
Es mag ja sein das es mit einem StyledText auch möglich wäre so etwas zu "bauen", aber ich denke die Zeit könnte man sich sparen...

Schau die mal folgendes Beispiel mit einem Browser Widget an:

Java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class BrowserWithTable {

	public static void main(String [] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setLayout(new FillLayout());
		Browser browser = new Browser(shell, SWT.NONE);
		browser.setUrl("table.html");

		shell.setSize(350, 550);
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
}

Du brauchst natürlich dann noch ne table.html...
Dazu einfach ein Textdokument öffnen mit folgendem Inhalt:

HTML:
<head>

</head>

<body>
<table border = 1px>
<tr><td>1. Zelle in 1. Zeile </td></tr>
<tr>
	<td>1. Zelle in 2. Zeile </td>
	<td>2. Zelle in 2. Zeile </td>

</tr>
<tr>
	<td>1. Zelle in 3. Zeile </td>
	<td>2. Zelle in 3. Zeile </td>
	<td>3. Zelle in 3. Zeile </td>
</tr>

<tr>
	<td>1. Zelle in 4. Zeile </td>
	<td>2. Zelle in 4. Zeile </td>
	<td>3. Zelle in 4. Zeile </td>
	<td>4. Zelle in 4. Zeile </td>
</tr>

</table>

</body>
</html>

und diese Datei als table.html speichern.

Vergiss nicht deine Pfadangabe dementsprechend anzupassen für die Methode
[JAVA=14]browser.setUrl("table.html");
[/code]

Obiges Beispiel kannst du dir ja schon mal ein wenig anschauen...
Da du davon sprichst, dass ne Menge Zahlen in so eine Struktur rein müssten, müsstest du dir wohl oder übel einen Textparser bauen, der dir dann die jeweilige HTML Tabellen Struktur zusammen baut, denn je nachdem wie viele Zellen du brauchst musst du natürlich auch dein Tabellengerüst anpassen...
 

ceer

Mitglied
Ok, also erstelle ich mir quasi per FileWriter eine html-datei, die ich dann dort anstatt des Textfeldes ausgebe, richtig?
kann ich die td's eigentlich auch mit einem "style" versehen?
Ich habe dort zudem eine pdf-export-funktion eingebaut, wird diese (itext) weiterhin funktionieren (denn nun ist die ausgabe ja html und nicht mehr der output des textfeldes.

Danke!
 

damtre

Aktives Mitglied
Also das Grundgerüst für das HTML File wäre schon mal so...
Du musst nun noch beim Table-Tag eine Routine einbauen, damit du auch ein gewünschtes Ergebnis erzielen kannst.

Ich habe hier ein 2 Dim Array als Beispiel verwendet. Damit hast du also immer pro Zeile immer deine nötigen Zellen gesichert...
Ob du es so machen kannst weiss ich nicht. Probier dich ein wenig daran aus.

Java:
import java.io.FileWriter;
import java.io.IOException;

public class MyWriter {
	
	int[][] valuesPerRow;
	
	public MyWriter(){
		try{
			generateHTMLCode(valuesPerRow);	
		}catch(IOException e){
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		new MyWriter();
	}

	public void generateHTMLCode(int[][] valuesPerRow) throws IOException {
		FileWriter wrt = new FileWriter("table.html");

		wrt.write("<html>");
		wrt.write(System.getProperty("line.separator"));

		wrt.write("<head>");
		wrt.write(System.getProperty("line.separator"));

		wrt.write("</head>");
		wrt.write(System.getProperty("line.separator"));

		wrt.write("<body>");
		wrt.write(System.getProperty("line.separator"));
		wrt.write("\t");

		wrt.write("<table>");
		wrt.write(System.getProperty("line.separator"));
		
// Hier muss ne for Schleife rein die dir das Tabellenzeilen bzw. Zellengerüst generiert...

		wrt.write("\t");
		wrt.write("</table>");
		wrt.write(System.getProperty("line.separator"));

		wrt.write("</body>");
		wrt.write(System.getProperty("line.separator"));
		wrt.write("</html>");
		
		wrt.flush();

		if (wrt != null)
			try {
				wrt.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
}

Übrigens: die td können auch einen Style haben.
Der Export des PDF´s könntest du doch auch innerhalb Mittels html lösen... Du kannst den Inhalt ja mit einem IFrame oder so im Html-Dokument platzieren.. Genau kann ich es dir hierbei nicht sagen. Aber da findet sich schon ne Lösung.

Grüße
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Layout-Frage: 3 Feste Tabellen, 6-10dynamische AWT, Swing, JavaFX & SWT 2
S Mehrere Tabellen Zellen gleichzeitig färben AWT, Swing, JavaFX & SWT 5
D MySQL-Tabellen in GUI anzeigen AWT, Swing, JavaFX & SWT 8
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
S Swing Tabellen - Listener & richtige Row AWT, Swing, JavaFX & SWT 3
K JavaFX Spalten der Tabellen verschieben AWT, Swing, JavaFX & SWT 2
R Swing Tabellen updaten AWT, Swing, JavaFX & SWT 10
T Swing 2 Tabellen parallel sortieren? (synchronisieren) AWT, Swing, JavaFX & SWT 3
F Tablemodel zu mehreren Tabellen AWT, Swing, JavaFX & SWT 6
K Tabellen Inhalt ( Zelle ) Modifizieren AWT, Swing, JavaFX & SWT 2
M Markieren von ganzen Zeilen in transparenten Tabellen AWT, Swing, JavaFX & SWT 6
D JTabel: Überschrift, Abstand zwischen Tabellen, Spalten-Farbe ändern AWT, Swing, JavaFX & SWT 2
M gleicher TableCellRenderer für mehrere unterschiedliche Tabellen AWT, Swing, JavaFX & SWT 5
D Swing keine Tabellen Zeilen ohne Focus AWT, Swing, JavaFX & SWT 7
D Tabellen Header & Abstand der Zeilen AWT, Swing, JavaFX & SWT 8
S SWT Zwei Tabellen gleichzeitig Scrollen AWT, Swing, JavaFX & SWT 3
D Swing Tabellen-Namen im ListSelectionListener abfragen AWT, Swing, JavaFX & SWT 2
A Tabellen Spalte löschen AWT, Swing, JavaFX & SWT 6
A Tabellen Überschriften ändern -setColumnIdentifiers()- Fehler AWT, Swing, JavaFX & SWT 7
M SWT SWT - Zwei Tabellen gleicher Größe AWT, Swing, JavaFX & SWT 5
T JTable - mehrere Tabellen verknüpfen AWT, Swing, JavaFX & SWT 14
T SWT Tabellen Kopf Schrift bearbeiten AWT, Swing, JavaFX & SWT 2
J Swing Spaltenbeschriftung bei Tabellen AWT, Swing, JavaFX & SWT 2
S Tabellen und Text Ausgabe in Swing GUI AWT, Swing, JavaFX & SWT 3
T Swing Sql Tabellen in jList ausgeben und speichern AWT, Swing, JavaFX & SWT 4
T Wie Zeilen in Tabellen farblich differenzieren? AWT, Swing, JavaFX & SWT 3
P Tabellen in Java - Zeile anhängen AWT, Swing, JavaFX & SWT 19
T Tabellen Inhalt in einem "anderem Frame" aktuallie AWT, Swing, JavaFX & SWT 7
0 JTable - Hintergrund Tabellen statt Grau AWT, Swing, JavaFX & SWT 5
D Voneinander abhängige Tabellen AWT, Swing, JavaFX & SWT 2
D Tabellen-Header anklickbar / auswählbar? AWT, Swing, JavaFX & SWT 5
L Tabellen formatieren ? AWT, Swing, JavaFX & SWT 4
T 4 db tabellen in einem karteireiter eigene klasse für die me AWT, Swing, JavaFX & SWT 7
G ein ContentProvider für 2 fast gleiche tabellen AWT, Swing, JavaFX & SWT 7
G Tabellen Items Einträge Aktualisieren AWT, Swing, JavaFX & SWT 2
K Spaltenbreite von mehreren Tabellen gleichzeitig verändern AWT, Swing, JavaFX & SWT 3
T listener für tabellen bei selektierung AWT, Swing, JavaFX & SWT 7
D mit swt.virtual mehrspaltige tabellen füllen AWT, Swing, JavaFX & SWT 3
I Probleme mit Tabellen (SWT) AWT, Swing, JavaFX & SWT 8
E SWT: Tabellen-Inhalt kopieren AWT, Swing, JavaFX & SWT 2
J Resultsets in Tabellen abbilden AWT, Swing, JavaFX & SWT 4
M Tabellen verschachteln AWT, Swing, JavaFX & SWT 7
G Tabellen Einträge löschen - JTable AWT, Swing, JavaFX & SWT 6
R Mehrzeilige Darstellung von Spalten in SWING-Tabellen AWT, Swing, JavaFX & SWT 5
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
S Layout - Problem AWT, Swing, JavaFX & SWT 1
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
melaniemueller Layout wechseln über RadioButtons AWT, Swing, JavaFX & SWT 4
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
R Layered Layout AWT, Swing, JavaFX & SWT 1
E showAndWait is not allowed during animation or layout processing Memory FX AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
E Swing Layout während der Laufzeit anpassen AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
I JavaFX - festes Layout AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
Neumi5694 Swing Card-Layout, Fokus AWT, Swing, JavaFX & SWT 2
kilopack15 Interface mit Layout verknüpfen AWT, Swing, JavaFX & SWT 2
Y Layout/Ausrichtungsprobleme AWT, Swing, JavaFX & SWT 4
T JavaFX Custom Layout AWT, Swing, JavaFX & SWT 5
A GUI Layout AWT, Swing, JavaFX & SWT 11
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
L wie Layout-Grid in JXPanel anzeigen? AWT, Swing, JavaFX & SWT 5
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
Soloeco LayoutManager Wie und welches Layout nutze ich am Besten? AWT, Swing, JavaFX & SWT 13
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout reagiert nicht auf Constraints AWT, Swing, JavaFX & SWT 4
IsSchoGuat LayoutManager Layout-Containergrösse AWT, Swing, JavaFX & SWT 4
F GridBag Layout AWT, Swing, JavaFX & SWT 1
Z Absolutes Layout / Kontrolle über Anordnung AWT, Swing, JavaFX & SWT 3
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
J ComboBoxModel addElement verändert Layout AWT, Swing, JavaFX & SWT 8
E Probelm mit Layout AWT, Swing, JavaFX & SWT 1
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
P Tipps für GUI-Layout AWT, Swing, JavaFX & SWT 2
M Passender Layout-Manager AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout zur Laufzeit ändern AWT, Swing, JavaFX & SWT 8
N Swing Zweifarbiges Layout für den Filechooser AWT, Swing, JavaFX & SWT 12
B LayoutManager Card Layout AWT, Swing, JavaFX & SWT 2
E Angehängtes Layout, aber wie? AWT, Swing, JavaFX & SWT 12
1 Eigenes Layout schreiben AWT, Swing, JavaFX & SWT 4
B SWT layout invalidieren in SWT? AWT, Swing, JavaFX & SWT 4
R Welchen Layout Manager/ Wie strukturieren? AWT, Swing, JavaFX & SWT 14
J Layout: oben 20% unten 80% AWT, Swing, JavaFX & SWT 12
T Layout für Listendarstellung AWT, Swing, JavaFX & SWT 3
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
K Eclipse Layout (Gimp Layout, Tiled Layout...) AWT, Swing, JavaFX & SWT 4
C LayoutManager Passendes Layout gesucht AWT, Swing, JavaFX & SWT 2
M Layout funktioniert nicht AWT, Swing, JavaFX & SWT 3
dzim Layout von Panes in JFX2 AWT, Swing, JavaFX & SWT 17

Ähnliche Java Themen

Neue Themen


Oben