1
我是Eclipse插件开发的初学者。如何删除Eclipse插件中的空白空间?
我已经开发了一些Eclipse插件使用星云在于提供扩展视图分量例如图形,表格等
我想绘制在视图中三种组分(使用MeterFigure,SWT的列表,XYGraph)。
但是,当我创建三个组件时,视图中有空白!
所以,我检查我的代码,但我找不到问题在哪里。
这是创建三个组件的代码。
@Override
public void createPartControl(Composite parent) {
...
GridLayout layout = new GridLayout(1, true);
parent.setLayout(layout);
parent.setLayoutData(new GridData(GridData.GRAB_VERTICAL));
merterFigure = new merterFigureClass(parent, SWT.NONE);
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
merterFigure.setLayoutData(gridData);
list = new ListClass(parent, SWT.NONE);
gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
list.setLayoutData(gridData);
list.initialize();
graph = new GraphClass(parent, SWT.NONE);
gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
graph.setLayoutData(gridData);
list.setGraph(graph);
}
这是MeterFigureClass。
public class MeterFigureClass extends Canvas {
private MeterFigure meterFigure;
public MeterFigureClass(Composite parent, int style) {
super(parent, style);
LightweightSystem lws = new LightweightSystem(this);
meterFigure = new MeterFigure();
meterFigure.setBackgroundColor(XYGraphMediaFactory.getInstance().getColor(255, 255, 255));
meterFigure.setValueLabelVisibility(true);
meterFigure.setRange(0, 100);
meterFigure.setLoLevel(35);
meterFigure.setLoloLevel(20);
meterFigure.setHiLevel(85);
meterFigure.setHihiLevel(70);
meterFigure.setMajorTickMarkStepHint(80);
lws.setContents(readabilityScore);
}
public void setValue(double value) {
this.getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
meterFigure.setValue(value);
}
});
}
}
这是ListClass。
public class ListClass extends Canvas {
private org.eclipse.swt.widgets.List list;
private List<Data> dataList;
private GraphClass graph;
public ListClass(Composite parent, int style) {
super(parent, style);
list = new org.eclipse.swt.widgets.List(parent, SWT.V_SCROLL | SWT.H_SCROLL);
dataList = new ArrayList<Data>();
...
GridData gridData = new GridData();
gridData.horizontalAlignment = SWT.FILL;
gridData.verticalAlignment = SWT.FILL;
list.setLayoutData(gridData);
}
....
public void setGraph(GraphClass Graph) {
this.Graph = Graph;
}
....
}
这是GraphClass。
ublic class MatrixGraph extends Canvas {
private char count;
private XYGraph matrixGraph;
private LightweightSystem lws;
public MatrixGraph(Composite parent, int style) {
super(parent, style);
addPaintListener(new PaintListener() {
@Override
public void paintControl(org.eclipse.swt.events.PaintEvent e) {
MatrixGraph.this.paintControl(e);
}
});
}
public void paintControl(PaintEvent e) {
if (count < 1)
count++;
else {
lws = new LightweightSystem(this);
matrixGraph = new XYGraph();
setGraphProperties();
}
}
...
}
非常感谢你。为了你的回答,我试了你的答案,但它仍然存在。它只是减少空白的大小.... – user3649231
尝试更改垂直对齐以及 - 看到更新的答案。我没有安装所有的东西,所以我无法测试它。但是您需要了解更多关于GridLayout的知识,并查看每个组件的布局。 –
嗯......谢谢你的建议。我将开始学习GridLayout。而且,在我的GridData版本中,没有TOP属性。库的版本是3.105.0。你能推荐我学习GridLayout的网站吗? – user3649231