【问题标题】:Adding a button to a RCP application向 RCP 应用程序添加按钮
【发布时间】:2013-06-10 19:26:41
【问题描述】:

我想向 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);
            }
        });

【问题讨论】:

  • java.awt.Button 吗?如果是则button.setText("Press"); 应该抛出编译错误。
  • 导入 org.eclipse.swt.widgets.Button; :) 删除 setText 对我得到的错误没有任何影响

标签: java eclipse swt awt rcp


【解决方案1】:

不要使用Panel,而是使用CompositePanel 来自 Swing,而您将 Swing 与 RCP/SWT 混合使用,这是不明智的。

您正在使用的 Button 来自 SWT,并且您将其添加到 Panel,这是一个 Swing 组件,您只能将 Swing 组件添加到 Panel。您可以将Button 更改为AWTButtonSwings JButton。否则如前所述,将Panel 更改为Composite

【讨论】:

  • 感谢大家的帮助:)
猜你喜欢
  • 1970-01-01
  • 2019-06-14
  • 2016-12-06
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多