我想向RCP客户端添加一个按钮。窗口需要显示我的barChart以及3个按钮。
当我添加该行时: panel.add(按钮); 它返回一个错误: 类型Container中的方法add(Component)不适用于参数(Button)
请帮助:)
@Override
protected void createWindows(final Shell shell) throws Exception {
shell.setLayout(new FillLayout());
final Composite composite = new Composite(shell, SWT.EMBEDDED);
final Frame frame = SWT_AWT.new_Frame(composite);
final StaticBarSketch barGraph = new StaticBarSketch();
final Button button = new Button(composite, SWT.PUSH);
button.setText("Press");
Panel panel = new Panel();
panel.add(barGraph);
frame.add(panel);
barGraph.init();
composite.addListener(SWT.Resize, new Listener() {
@Override
public void handleEvent(Event event) {
barGraph.resized(composite.getSize().x, composite.getSize().y);
}
});
答案 0 :(得分:0)
使用Panel
而不是使用Composite
。 Panel
来自Swing
,您正在将Swing
与RCP / SWT混合,这是不明智的。
您使用的Button
来自SWT,并且您要将其添加到Panel
这是Swing
组件,并且您只能Swing
组件Panel
1}}。您可以将Button
更改为AWT
&#39} Button
或Swing
s JButton
。否则,如前所述,请将Panel
更改为Composite
。