RCP Views und Swing

Status
Nicht offen für weitere Antworten.

Saxony

Top Contributor
Hiho,

wie kann ich eigentlich eine RCP View(org.eclipse.ui.part.ViewPart) dazu verwenden, dass der Inhalt dieser View ein JFrame/JPanel sein soll ?

Vielen Dank!

bye Saxony
 

Saxony

Top Contributor
Hiho,

also ich habe mal in meinem jugendlichen Leichtsinn folgendes probiert:

Code:
@Override
	public void createPartControl(Composite parent) {
			
		final Frame panel = SWT_AWT.new_Frame(parent);

		java.awt.Button button = new java.awt.Button("Click Me");

		panel.add(button);		
	}

Leider kommt da ne Exception der Form:

IllegalArgumentException hat gesagt.:
java.lang.IllegalArgumentException: Argument not valid
at org.eclipse.swt.SWT.error(SWT.java:3547)
at org.eclipse.swt.SWT.error(SWT.java:3481)
at org.eclipse.swt.SWT.error(SWT.java:3452)
at org.eclipse.swt.awt.SWT_AWT.new_Frame(SWT_AWT.java:136)
at myfirstrcp.SecondView.createPartControl(SecondView.java:58)
at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:370)
at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:227)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:299)
...

Wie bekomme ich nun so einen AWT Button in meinen SWT View ?

bye Saxony
 

Wildcard

Top Contributor
Das Composite muss vom Style SWT.EMBEDDED sein.

Code:
Composite viewComposite = new Composite(parent, SWT.EMBEDDED);

Panel panel = new Panel(new GridLayout(1, 1));
Frame frame = SWT_AWT.new_Frame(viewComposite);
 

Saxony

Top Contributor
Hiho,

ich mal wieder. ;)

Also ich habe nun mal noch etwas probiert.

Code:
package myfirstrcp;

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.Panel;

import javax.swing.JButton;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;

public class SecondView extends ViewPart {

	public static final String ID = "myfirstrcp.views.secondview";

	public SecondView() {
		// TODO Auto-generated constructor stub
		this.setTitleImage(PlatformUI.getWorkbench().getSharedImages()
				.getImage(ISharedImages.IMG_OBJ_FOLDER));
	}

	@Override
	public void createPartControl(Composite parent) {

		Display display = PlatformUI.getWorkbench().getDisplay();

		Shell shell = new Shell(display);
		shell.setText("SWT und AWT");

		Composite comp = new Composite(shell, SWT.EMBEDDED);
		Panel pan = new Panel();
		pan.setLayout(new BorderLayout());
		JButton btn2 = new JButton("asd");
		pan.add(btn2, BorderLayout.CENTER);
		Frame frame = SWT_AWT.new_Frame(comp);
		frame.setLayout(new BorderLayout());
		frame.add(pan, BorderLayout.CENTER);

		GridLayout layout = new GridLayout();
		shell.setLayout(layout);
		shell.open();
	}

	@Override
	public void setFocus() {
		// TODO Auto-generated method stub

	}

}

So naja nun kompiliert es ja schon mal fehlerfrei. :) Aber einen Button mit der Aufschrift "asd" sehe ich in meinem View aber trotzdem nicht!?!

bye Saxony
 

Saxony

Top Contributor
So ich hole den Thread nochmal hervor, da mein Problem nach wie vor besteht. ;)

Alle Beispiele die ich mir dazu angeschaut habe, gahen davon aus, dass ich mit neuem Display und neuer Shell arbeiten möchte.

Ich möchte aber ein JPanel in einen existierenden View anzeigen lassen. Vielleicht fange ich da ja auch schon falsch an!?!

bye Saxony
 

Wildcard

Top Contributor
Die EMBEDDED Composite muss einfach ein Kind von 'parent' sein.
Eine neue Shell hat da nichts verloren :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L RCP Kommunikation zwischen zwei Views Plattformprogrammierung 8
R Databinding und update views Plattformprogrammierung 4
A RCP Eigene Klasse für Views Plattformprogrammierung 13
C RCP Verwendung vorhandener Views, Strukturierung RCP Anwendungen Plattformprogrammierung 5
lumo RCP Beim wechsel der Perspektive automatisch Views aktivieren Plattformprogrammierung 6
V RCP Zwei Views miteinander verbinden Plattformprogrammierung 2
L RCP Mehrere Instanzen von Views öffnen? Plattformprogrammierung 6
L RCP Views nacheinander laden? Plattformprogrammierung 2
L PerspectiveLayout Views Ausrichtung? Plattformprogrammierung 3
T geladene Views / Event wenn View closed Plattformprogrammierung 4
T Werte an Views übergeben Plattformprogrammierung 7
lumo Eclipse Plug-In: Editors und Views Plattformprogrammierung 3
N Eclipse RCP: Views stapeln Plattformprogrammierung 2
I Eclipse-Plugin: Perspektive mit 2 Views Plattformprogrammierung 5
M SWT: eigens erstellte Views Plattformprogrammierung 22
Blender3D Swing Timer läuft unter Windows korrekt nicht aber unter UBUNTU Plattformprogrammierung 11
T Application+Swing Plattformprogrammierung 2
L RCP AWT/ SWing in RCP Plattformprogrammierung 3
T SWT_AWT bridge: javax.swing.JTextField nicht "anklickbar" Plattformprogrammierung 2
D OSGi JSR296 (Swing Application Framework) - Konzeptionsfrage Plattformprogrammierung 2
T Eclipse RCP vs. "any other Swing based RCP" Plattformprogrammierung 10

Ähnliche Java Themen


Oben