SWT SWTChart - warum sieht man den Chart nicht?

Hi,

ich habe einen
Code:
TabFolder
mit einem
Code:
TabItem
erstellt. Darin möchte ich ein einfaches, leeres Chat haben, so wie hier beschrieben: SWTChart documentation

Mein Versuch: (Ausschnitt aus meiner View)

Java:
tabFolder2 = new TabFolder(parent, SWT.NONE);
		gridData_1 = new GridData();
		gridData_1.verticalSpan = 3;
		gridData_1.heightHint = 392;
		gridData_1.horizontalSpan = 8;
		gridData_1.horizontalAlignment = SWT.FILL;
		gridData_1.verticalAlignment = SWT.FILL;
		gridData_1.grabExcessHorizontalSpace = true;
		gridData_1.grabExcessVerticalSpace = true;
		tabFolder2.setLayoutData(gridData_1);

		tabItemGraphik = new TabItem(tabFolder2, SWT.NONE);
		tabItemGraphik.setText("Graphik");
		Composite composite = new Composite(tabFolder2, SWT.EMBEDDED);
		tabItemGraphik.setControl(composite);
		
		//ChartModel c = new ChartModel(composite, SWT.NONE);
		Chart chart = new Chart(composite, SWT.NONE);
		double[] ySeries = { 0.3, 1.4, 1.3, 1.9, 2.1 };
		ISeriesSet seriesSet = chart.getSeriesSet();
		ISeries series = seriesSet.createSeries(SeriesType.LINE, "line series");
		series.setYSeries(ySeries);
		IAxisSet axisSet = chart.getAxisSet();
		axisSet.adjustRange();
		chart.getVisible();

Frage: warum wird nichts in meinem
Code:
TabItem
angezeigt?
 
Anbei habe ich ein Beispiel-RCP-Projekt als KSKB eingefügt, das man in Eclipse importieren kann.

Vielleicht kann man ja so das Problem besser lösen.

Wem das zu umständlich ist und lieber selbst ein RCP-Projekt anlegen möchte, hier ist die View:


Java:
package testplugin;

import java.io.IOException;
import java.text.ParseException;

import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DateTime;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import org.swtchart.Chart;
import org.swtchart.IAxisSet;
import org.swtchart.ISeries;
import org.swtchart.ISeries.SeriesType;
import org.swtchart.ISeriesSet;

public class View extends ViewPart {
	public View() throws IOException, ParseException {
	}

	private TableViewer viewer;
	private TabFolder tabFolder1;
	private TabFolder tabFolder2;
	private TabItem tabItemGraphik;
	public static final String ID = "TestPlugin.view";
	private GridData gridData_1;
	private GridData gridData_2;
	private Table tblauspr;
	private Table tblausbett;
	private TableViewer tableViewerauspr;
	private TableViewer tableViewerausbett;
	private Text sText;
	private TreeViewer treeViewer;
	private Composite composite_1;
	private Table tabl;
	private TabItem tabItemprodSetTree;
	private Composite composite; 
	

	/**
	 * The content provider class is responsible for providing objects to the
	 * view. It can wrap existing objects in adapters or simply return objects
	 * as-is. These objects may be sensitive to the current input of the view,
	 * or ignore it and always show the same content (like Task List, for
	 * example).
	 */
	class ViewContentProvider implements IStructuredContentProvider {
		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
		}

		public void dispose() {
		}

		public Object[] getElements(Object parent) {
			if (parent instanceof Object[]) {
				return (Object[]) parent;
			}
			return new Object[0];
		}
	}

	class ViewLabelProvider extends LabelProvider implements
			ITableLabelProvider {
		public String getColumnText(Object obj, int index) {
			return getText(obj);
		}

		public Image getColumnImage(Object obj, int index) {
			return getImage(obj);
		}

		public Image getImage(Object obj) {
			return PlatformUI.getWorkbench().getSharedImages()
					.getImage(ISharedImages.IMG_OBJ_ELEMENT);
		}
	}

	public void createPartControl(Composite parent) {
		
		parent.setLayout(new GridLayout(12, false));

		sText = new Text(parent, SWT.BORDER);
		GridData gridData = new GridData();
		gridData.horizontalSpan = 2;
		gridData.horizontalAlignment = SWT.FILL;
		gridData.grabExcessHorizontalSpace = true;
		sText.setLayoutData(gridData);

		Button searchButton = new Button(parent, SWT.NONE);
		gridData = new GridData();
		gridData.horizontalAlignment = SWT.FILL;
		searchButton.setLayoutData(gridData);
		searchButton.setText("add");

		Button btnref = new Button(parent, SWT.NONE);
		btnref.setText("ad");

		Label vonLabel = new Label(parent, SWT.NONE);
		vonLabel.setText("from");

		DateTime date1 = new DateTime(parent, SWT.NONE);

		Label bisLabel = new Label(parent, SWT.NONE);
		bisLabel.setText("to");

		DateTime date2 = new DateTime(parent, SWT.NONE);

		Button wocheButton = new Button(parent, SWT.NONE);
		gridData = new GridData();
		gridData.horizontalAlignment = SWT.FILL;
		gridData.grabExcessHorizontalSpace = true;
		wocheButton.setLayoutData(gridData);
		wocheButton.setText("button 1");

		Button monatButton = new Button(parent, SWT.NONE);
		gridData = new GridData();
		gridData.horizontalAlignment = SWT.FILL;
		gridData.grabExcessHorizontalSpace = true;
		monatButton.setLayoutData(gridData);
		monatButton.setText("button 2");

		Button quartalButton = new Button(parent, SWT.NONE);
		gridData = new GridData();
		gridData.horizontalAlignment = SWT.FILL;
		gridData.grabExcessHorizontalSpace = true;
		quartalButton.setLayoutData(gridData);
		quartalButton.setText("button 3");

		Button jahrButton = new Button(parent, SWT.NONE);
		gridData = new GridData();
		gridData.horizontalAlignment = SWT.FILL;
		gridData.grabExcessHorizontalSpace = true;
		jahrButton.setLayoutData(gridData);
		jahrButton.setText("button 4");

		tabFolder1 = new TabFolder(parent, SWT.NONE);

		gridData_2 = new GridData();
		gridData_2.verticalSpan = 3;
		gridData_2.heightHint = 123;
		gridData_2.widthHint = 400;
		gridData_2.horizontalSpan = 4;
		gridData_2.horizontalAlignment = SWT.FILL;
		gridData_2.verticalAlignment = SWT.FILL;
		gridData_2.grabExcessHorizontalSpace = true;
		gridData_2.grabExcessVerticalSpace = true;
		tabFolder1.setLayoutData(gridData_2);

		TabItem tabItemprod = new TabItem(tabFolder1, SWT.NONE);
		tabItemprod.setText("prod");

		viewer = new TableViewer(tabFolder1, SWT.MULTI | SWT.H_SCROLL
				| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
		tabl = viewer.getTable();
		
		
		tabl.setHeaderVisible(true);
		tabl.setLinesVisible(true);
		tabItemprod.setControl(tabl);

		
		tabItemprodSetTree = new TabItem(tabFolder1, SWT.NONE);
		tabItemprodSetTree.setText("prod 2");

		treeViewer = new TreeViewer(tabFolder1, SWT.MULTI | SWT.H_SCROLL
				| SWT.V_SCROLL);
		

		tabItemprodSetTree.setControl(treeViewer.getControl());

		tabFolder2 = new TabFolder(parent, SWT.NONE);
		gridData_1 = new GridData();
		gridData_1.verticalSpan = 3;
		gridData_1.heightHint = 392;
		gridData_1.horizontalSpan = 8;
		gridData_1.horizontalAlignment = SWT.FILL;
		gridData_1.verticalAlignment = SWT.FILL;
		gridData_1.grabExcessHorizontalSpace = true;
		gridData_1.grabExcessVerticalSpace = true;
		tabFolder2.setLayoutData(gridData_1);

		tabItemGraphik = new TabItem(tabFolder2, SWT.NONE);
		tabItemGraphik.setText("Graphik");
		composite = new Composite(tabFolder2, SWT.EMBEDDED);
		tabItemGraphik.setControl(composite);
		
		/*
		 * 
		 * Chart einfügen!
		 * 
		 * 
		 */
		
		//ChartModel c = new ChartModel(composite, SWT.NONE);
        Chart chart = new Chart(composite, SWT.NONE);
        double[] ySeries = { 0.3, 1.4, 1.3, 1.9, 2.1 };
        ISeriesSet seriesSet = chart.getSeriesSet();
        ISeries series = seriesSet.createSeries(SeriesType.LINE, "line series");
        series.setYSeries(ySeries);
        IAxisSet axisSet = chart.getAxisSet();
        axisSet.adjustRange();
        chart.getVisible();

		
        
        
		
		TabItem tabItemauspr = new TabItem(tabFolder2, SWT.NONE);
		tabItemauspr.setText("aus pr");

		tableViewerauspr = new TableViewer(tabFolder2, SWT.MULTI
				| SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
		tblauspr = tableViewerauspr.getTable();
		tblauspr.setHeaderVisible(true);
		tblauspr.setLinesVisible(true);
		tabItemauspr.setControl(tblauspr);
		tableViewerauspr
				.setContentProvider(new ArrayContentProvider());
		getSite().setSelectionProvider(tableViewerauspr);

		TabItem tabItemausbett = new TabItem(tabFolder2, SWT.NONE);
		tabItemausbett.setText("aus bett");

		tableViewerausbett = new TableViewer(tabFolder2, SWT.MULTI
				| SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
		tblausbett = tableViewerausbett.getTable();
		
		tblausbett.setHeaderVisible(true);
		tblausbett.setLinesVisible(true);
		tabItemausbett.setControl(tblausbett);
		tableViewerausbett
				.setContentProvider(new ArrayContentProvider());
		getSite().setSelectionProvider(tableViewerausbett);

		composite_1 = new Composite(parent, SWT.NONE);
		GridData gd_composite_1 = new GridData(SWT.LEFT, SWT.CENTER, false,
				false, 4, 1);
		gd_composite_1.heightHint = 57;
		gd_composite_1.widthHint = 453;
		composite_1.setLayoutData(gd_composite_1);

		Button btnAlle = new Button(composite_1, SWT.NONE);
		btnAlle.setBounds(0, 0, 75, 25);
		btnAlle.setText("all");

		Button btnKeine = new Button(composite_1, SWT.NONE);
		btnKeine.setBounds(81, 0, 75, 25);
		btnKeine.setText("no");

		Button btncheeck = new Button(composite_1, SWT.CHECK);
		btncheeck.setBounds(162, 5, 103, 16);
		btncheeck.setText("check");

		Button btnNeu = new Button(composite_1, SWT.NONE);

		btnNeu.setBounds(1, 30, 75, 25);
		btnNeu.setText("new");

		
		Button btnBearbeiten = new Button(composite_1, SWT.NONE);
		
		btnBearbeiten.setBounds(81, 31, 75, 25);
		btnBearbeiten.setText("Bear");

		
		Button btnLschen = new Button(composite_1, SWT.NONE);
		
		btnLschen.setBounds(162, 31, 75, 25);
		btnLschen.setText("Del");

		Button btnZumprodsetadd = new Button(composite_1, SWT.NONE);
		
		btnZumprodsetadd.setBounds(243, 31, 152, 25);
		btnZumprodsetadd.setText("Okay");
		btnZumprodsetadd.setEnabled(true);

		Composite composite_2 = new Composite(parent, SWT.NONE);
		GridData gd_composite_2 = new GridData(SWT.LEFT, SWT.CENTER, false,
				false, 6, 1);
		gd_composite_2.heightHint = 60;
		gd_composite_2.widthHint = 568;
		composite_2.setLayoutData(gd_composite_2);

		Label lblMeanAbsoluteError = new Label(composite_2, SWT.NONE);
		lblMeanAbsoluteError.setBounds(0, 3, 130, 15);
		lblMeanAbsoluteError.setText("error ");

		Label lblMeanPercentageError = new Label(composite_2, SWT.NONE);
		lblMeanPercentageError.setBounds(0, 19, 130, 15);
		lblMeanPercentageError.setText("error ");

		Label lblError = new Label(composite_2, SWT.NONE);
		lblError.setBounds(136, 3, 55, 15);
		lblError.setText("Error1");

		Label lblError_1 = new Label(composite_2, SWT.NONE);
		lblError_1.setBounds(136, 19, 55, 15);
		lblError_1.setText("Error2");

		Button btnWeitereInformationen = new Button(composite_2, SWT.NONE);
		btnWeitereInformationen.setBounds(0, 35, 130, 25);
		btnWeitereInformationen.setText("info");

		Button btnCsvexportpr = new Button(composite_2, SWT.NONE);
		btnCsvexportpr.setBounds(236, 3, 151, 25);
		btnCsvexportpr.setText("csv 1");

		Button btnCsvexportbett = new Button(composite_2, SWT.NONE);
		btnCsvexportbett.setBounds(393, 3, 151, 25);
		btnCsvexportbett.setText("csv 2");
		new Label(parent, SWT.NONE);
		new Label(parent, SWT.NONE);

	}

	public void setFocus() {

	}
}
 
Hallo SirWayne,

ok, habe alles überflüssige eliminiert:



Java:
package testplugin;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.ui.part.ViewPart;
import org.swtchart.Chart;
import org.swtchart.IAxisSet;
import org.swtchart.ISeries;
import org.swtchart.ISeries.SeriesType;
import org.swtchart.ISeriesSet;

public class View extends ViewPart {
	
	private TabFolder tabFolder2;
	private TabItem tabItemGraphik;
	public static final String ID = "TestPlugin.view";
	private GridData gridData_1;
	private Composite composite; 

	public void createPartControl(Composite parent) {
		
		parent.setLayout(new GridLayout());

		tabFolder2 = new TabFolder(parent, SWT.NONE);
		gridData_1 = new GridData();
		gridData_1.verticalSpan = 3;
		gridData_1.heightHint = 392;
		gridData_1.horizontalSpan = 8;
		gridData_1.horizontalAlignment = SWT.FILL;
		gridData_1.verticalAlignment = SWT.FILL;
		gridData_1.grabExcessHorizontalSpace = true;
		gridData_1.grabExcessVerticalSpace = true;
		tabFolder2.setLayoutData(gridData_1);

		tabItemGraphik = new TabItem(tabFolder2, SWT.NONE);
		tabItemGraphik.setText("Graphik");
		composite = new Composite(tabFolder2, SWT.EMBEDDED);
		tabItemGraphik.setControl(composite);
		
		/*
		 * 
		 * Chart einfügen!
		 * 
		 * 
		 */
		
        Chart chart = new Chart(composite, SWT.NONE);
        double[] ySeries = { 0.3, 1.4, 1.3, 1.9, 2.1 };
        ISeriesSet seriesSet = chart.getSeriesSet();
        ISeries series = seriesSet.createSeries(SeriesType.LINE, "line series");
        series.setYSeries(ySeries);
        IAxisSet axisSet = chart.getAxisSet();
        axisSet.adjustRange();
        chart.getVisible();
	}

	public void setFocus() {

	}
}


Man sieht keinen Chart:

Hzkon.png
 

Sonecc

Gesperrter Benutzer
Die Composite erhält nie ein Layout. Ohne Layout keine Positionierung der Widgets und ohne Position keine Anzeige.
 

Exflame

Mitglied
Kann man auch die SWTChart an ein Panel binden? Also keine Shell? Auch ohne Layoutmanager?

Kurze Erklärung: Ich hab ein kleines JPanel, das ich mit einer SINUS-Kurve füllen muss. :autsch:
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX kann man da noch was am code vereinfachen design technisch sieht nicht richtig aus... AWT, Swing, JavaFX & SWT 15
Ivan Dolvich [Linux] JFileChooser sieht komisch aus... AWT, Swing, JavaFX & SWT 12
GambaJo GUI sieht in NB anders aus, als fertige Applikation AWT, Swing, JavaFX & SWT 2
M JTree mit eigenem Renderer sieht seltsam aus AWT, Swing, JavaFX & SWT 2
G JavaFX Line Chart mit Farbverlauf/Gradient in Linie AWT, Swing, JavaFX & SWT 1
L JavaFX JavaFX Chart Drag and Drop AWT, Swing, JavaFX & SWT 3
K Liniendicke für Line Chart dynamisch ändern AWT, Swing, JavaFX & SWT 0
M JavaFX Line Chart Markers AWT, Swing, JavaFX & SWT 0
J JavaFX Stacked Bar Chart - XYChart.Series Colors AWT, Swing, JavaFX & SWT 0
F JavaFX 8 Area Chart AWT, Swing, JavaFX & SWT 1
F Chart-Unterschied Java 7 und Java 8 AWT, Swing, JavaFX & SWT 3
E JFreeChart: Timeseries-Chart und Area-Chart "überlappen" lassen AWT, Swing, JavaFX & SWT 6
F Swing Framework gesucht (Swing, Chart, "Scheduling" Grafik) AWT, Swing, JavaFX & SWT 2
M Suche passende Chart Library LGPL/kommerziell AWT, Swing, JavaFX & SWT 14
L Gantt Chart - JFreeChart AWT, Swing, JavaFX & SWT 5
L JFreeChart StackedBar + Line-Chart kombinieren AWT, Swing, JavaFX & SWT 4
G Ausser Jfreechart, Chart Programme? AWT, Swing, JavaFX & SWT 11
S Balkendiagramm und XY-Graph in einem Chart? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben