Java eclipse插件setBounds属性不工作

Java eclipse插件setBounds属性不工作,java,eclipse,eclipse-plugin,swt,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Swt,Eclipse Rcp,我正在开发一个eclipse插件,其中我想显示一个标签和一个进度条。但不幸的是,我无法更改它们的大小。无论我在标签和进度条的setBounds属性中提到什么大小,都会给我坐标:矩形{3,3,70,15}和矩形{3,21,170,17} 下面是我的处理程序代码: private ProgressBar progressBar; @Override public Object execute(ExecutionEvent event) throws ExecutionException {

我正在开发一个eclipse插件,其中我想显示一个标签和一个进度条。但不幸的是,我无法更改它们的大小。无论我在标签和进度条的setBounds属性中提到什么大小,都会给我坐标:矩形{3,3,70,15}和矩形{3,21,170,17}

下面是我的处理程序代码:

private ProgressBar progressBar;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {

        Display display = Display.getDefault();

        Shell p_shell = new Shell(display,SWT.DIALOG_TRIM);

        p_shell.setText("Translating..");

        p_shell.setLayout(new RowLayout(SWT.VERTICAL));

        p_shell.setSize(250, 70);

        Label label = new Label(p_shell, SWT.NONE);

        label.setBounds(10, 20, 180, 20);
        //LINE 101 gives Rectangle {3, 3, 70, 15}

        label.setText("Please wait ...");

        progressBar = new ProgressBar(p_shell, SWT.SMOOTH);

        //progressBar.setBounds(10, 50, 200, 20);
        //LINE 100 gives Rectangle {3, 21, 170, 17}

        progressBar.setBounds(new Rectangle(5, 30, 150, 10));
        //LINE 100 gives Rectangle {3, 21, 170, 17}         

        progressBar.setMinimum(30);

        progressBar.setMaximum(100);

        p_shell.open();

        System.out.println("progress bar  ==> " + progressBar.getBounds());//LINE 100

        System.out.println("label ==> " + label.getBounds());//LINE 101


        while(!p_shell.isDisposed()){

            if(!display.readAndDispatch()){
                display.sleep();
            }
        }
        }

我无法继续。如果有任何帮助,我们将不胜感激。

您不能将布局与收进框混合使用-布局将覆盖边界。如果删除
setLayout
,边界将起作用

但是,使用
setBounds
可能会在不同的屏幕上给您带来问题,因此您应该尝试使用没有setBounds的布局来实现这一点


还请注意,Eclipse向导、作业和其他东西已经提供了标准的进度指示器。

您不能将布局与设置边界混合使用-布局将覆盖边界。如果删除
setLayout
,边界将起作用

但是,使用
setBounds
可能会在不同的屏幕上给您带来问题,因此您应该尝试使用没有setBounds的布局来实现这一点


还要注意,Eclipse向导、作业和其他东西已经提供了标准的进度指示器。

null您的setLayout。但这不是一个好的做法。请将setLayout设置为null。但这不是一个好的实践。谢谢。它现在可以工作了。但我有一个疑问。如何使插件UI独立于屏幕大小?就像我说的使用布局-。如果解决了你的问题,别忘了接受答案。谢谢。它现在可以工作了。但我有一个疑问。如何使插件UI独立于屏幕大小?就像我说的使用布局-。如果答案解决了你的问题,别忘了接受它。