尝试 运行 Eclipse 中的复合 GUI

Trying to run a composite GUI in Eclipse

我正在学习如何使用 Eclipse IDE 并尝试 运行 在 Eclipse 中构建一个组合。但是,我无法将其发送到 运行 GUI 任何人都可以帮忙吗?我知道我需要 public static void main(String[] args),但我需要向此方法添加什么才能使其正确地达到 运行?谁能帮帮我。

package gui;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Combo;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.plaf.metal.MetalIconFactory;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.wb.swt.SWTResourceManager;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;

public class GUI extends Composite {

// Strings to use as list items
private static final String[] items = { "Item 1", "Item 2", "Item 3", "Item 4" };

public Framework(Composite parent, int style) {
    super(parent, style);

    Combo comboBox= new Combo(this, SWT.DROP_DOWN);
    comboBox.setBounds(174, 36, 534, 20);
    comboBox.setItems(Algorithms);

    Label lblOut = new Label(this, SWT.NONE);
    lblOut.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
    lblOut.setBounds(38, 145, 534, 327);

    Button btnExit = new Button(this, SWT.NONE);
    btnExit.setText("EXIT");
    btnExit.setForeground(SWTResourceManager.getColor(SWT.COLOR_BLACK));
    btnExit.setBounds(591, 421, 166, 51);
    btnExit.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            System.exit(0);
        }
    });
}

@Override
protected void checkSubclass() {
    // Disable the check that prevents subclassing of SWT components
}

public static void main(String[] args) {
    Framework framework = new Framework(); 
    Composite c = new Composite(framework, SWT.NONE); 
}
}

我在行 Framework framework = new Framework(); 上收到错误,因为我需要两个参数 parent, font。请帮忙解释一下我只是Java的初学者。

SWT 程序的 main 必须始终创建 SWT 显示和 运行 SWT 事件调度循环。

Composite 等控件必须包含在 Shell 控件中。

所以你的 main 可能看起来像:

public static void main(final String [] args)
{
  // Create the display
  Display display = new Display();
  try
   {
     // Create main shell
     Shell shell = new Shell(display, SWT.SHELL_TRIM);

     shell.setText("Shell Title");

     shell.setLayout(new FillLayout());

     // Put framework in the shell
     new Framework(shell, SWT.NONE);

     // Open the shell
     shell.open();

     // Main event dispatch loop
     while (!shell.isDisposed())
      {
        if (!display.readAndDispatch())
          display.sleep();
      }
    }
  finally
   {
     // Clean up
     display.dispose();
   }
}