SWT Komponenten ausdrucken ?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

Wie könnte ich eine beliebige SWT-Komponente drucken? Mir wurde eine Lösung vorgeschlagen, bei der eine Komponente zuerst zu einem Image umgewandelt wird und dann ausgedruckt wird (code unten). Es funktioniert auch ganz gut, aber ich möchte nicht nur eine Bestimmte, sondern alle möglichen Komponenten ausdrucken können.

Die vorgeschlagene Lösung sieht folgendemaßen aus und can nur ein Table ausdrucken:

Code:
public class CaptureWidgetImage {
	public static void main(String[] args) {
		final Display display = new Display();
		final Shell shell = new Shell(display);
		shell.setText("Widget");
		shell.setBounds(10, 10, 200, 200);
		final Table table = new Table(shell, SWT.MULTI);
		table.setLinesVisible(true);
		table.setBounds(10, 10, 100, 100);
		for (int i = 0; i < 9; i++) {
			new TableItem(table, SWT.NONE).setText("item" + i);
		}
		Button button = new Button(shell, SWT.PUSH);
		button.setText("Capture");
		button.setBounds(10, 140, 50, 20);
		button.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				Point tableSize = table.getSize();
				GC gc = new GC(table);
				final Image image =
					new Image(display, tableSize.x, tableSize.y);
				gc.copyArea(image, 0, 0);
				gc.dispose();
				Shell popup = new Shell(shell);
				popup.setText("Image");
				popup.setBounds(50, 50, 200, 200);
				Canvas canvas = new Canvas(popup, SWT.NONE);
				canvas.setBounds(10, 10, 150, 150);
				canvas.addPaintListener(new PaintListener() {
					public void paintControl(PaintEvent e) {
						e.gc.drawImage(image, 0, 0);
					}
				});
				popup.open();
			}
		});
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) display.sleep();
		}
		display.dispose();
	}
}

Viele Grüße

Taha
 

DamienX

Aktives Mitglied
Versteh ich das richtig dass du nur "einzelne" Komponenten drucken willst (also komplett grafisch) oder
nur den Inhalt? Oder genügt es dir vllt ne Hardcopy auszudrucken?
 
G

Guest

Gast
...ich möchte zum Beispiel ein Button, eine TextFeld oder auch die ganze gui ausdrucken können. Ich würde zum Beispiel eine Methode haben, dem ich irgendeine , aber wirklich irgendeine swt-gui-komponente übergebe und das soll komplett mit Inhalten ausgedruckt werden.

Das ganze habe ich mit Swing schon geschafft. Ich habe eine Methode geschrieben, der als Parameter eine Componente nimmt und es ausdruckt. Nun bei SWT weiss ich nicht wie ich das Gleiche schaffen kann, da SWT gui-komponenten keine obere Klasse wie Componente haben. Es gibt nur ein Interface Drawable und alle SWT-Komponenten implementieren es, aber mit Drawable kann ich wahrscheinlich nicht viel anfangen um zu drucken.

Ich hoffe dass ich deine Fragen richtig verstanden und beantwortet habe.

Danke
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
perlenfischer1984 Mehrere Komponenten erstellen Allgemeine Java-Themen 3
M Monitoring JMX-Komponenten Allgemeine Java-Themen 0
Fab1 Komponenten eines zweiten Java Programms auslesen Allgemeine Java-Themen 8
P Komponenten kommunikation Allgemeine Java-Themen 7
S Applet nicht signierte Komponenten feststellen Allgemeine Java-Themen 6
J Java Komponenten / Framework Allgemeine Java-Themen 5
N Gridbaglayout - Abstände zwischen Komponenten einstellen Allgemeine Java-Themen 2
C Komponenten einer WebSeite Allgemeine Java-Themen 4
B Eingabemaske Komponenten aktivieren, funktionert nicht (sehr kurios) Allgemeine Java-Themen 2
T JXPanel mit seinen Komponenten auf PDF mit iText ausgeben Allgemeine Java-Themen 15
J Modul/Komponenten/Addon-Programmierung Allgemeine Java-Themen 3
sliwalker Designfrage: Dateninhalte in Komponenten variabel halten Allgemeine Java-Themen 4
MQue Komponenten einem JPanel hinzufügen Allgemeine Java-Themen 9
MQue Fokus von Komponenten/JFrame Allgemeine Java-Themen 3
Z variabel Komponenten erstellen oder Compie Allgemeine Java-Themen 4
A Komponenten binär in Datei schreiben Allgemeine Java-Themen 11
G Panel mit vielen Komponenten verbraucht viel Speicher Allgemeine Java-Themen 3
R Umstieg von Delphi (Komponenten) Allgemeine Java-Themen 4
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
B Grafische Oberfläche - Welche Komponenten? Allgemeine Java-Themen 5
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
H Excel Ausdrucken per Knopfdruck Allgemeine Java-Themen 6
W Wieder einmal: PNG ausdrucken Allgemeine Java-Themen 3
C Ausdrucken einer JTable in eine Datei mit Erhalt des Formats Allgemeine Java-Themen 3
C jdic Browserinhalt ausdrucken Allgemeine Java-Themen 6
L Das aktuelle Directory, in dem sich das Programm ausdrucken Allgemeine Java-Themen 8
S Postscript Datei direkt ausdrucken? Allgemeine Java-Themen 5
A Ausdrucken von Konsole Allgemeine Java-Themen 4
G JTable: RowHeader mit ausdrucken Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben