Затмение SWT Shell в JInternalFrame - PullRequest
0 голосов
/ 18 июня 2011

Я начинаю работать с Eclipse SWT, и у меня есть следующие вопросы.

Следующий класс открывает окно со словом document, на которое ссылается переменная «archivo».

import java.io.File;

import javax.swing.JInternalFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ArchivoMSOffice {

    protected static OleClientSite clientSite;
    protected static OleFrame frame;

    public ArchivoMSOffice() {

    }

    public void run(archivo) {      
        Display display = new Display();
        final Shell shell = new Shell(display);
        shell.setText(archivo);
        shell.setLayout(new FillLayout());
        try {
            frame = new OleFrame(shell, SWT.NONE);
            //esto abre un documento existente
            clientSite = new OleClientSite(frame, SWT.NULL, new File(archivo));
        } catch (SWTError e) {
            System.out.println("Unable to open activeX control");
            display.dispose();
            return;
        }
        shell.setSize(800, 600);
        shell.open();//this open de Window

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }
}

Как я могу сделать это окно JInternalFrame?

Спасибо за помощь. Привет!

1 Ответ

1 голос
/ 18 июня 2011

Вы смешиваете два набора инструментов.Ваш код использует SWT, но JInternalFrame исходит из инструментария Swing.SWT и Swing - это два совершенно разных способа кодирования пользовательского интерфейса в Java.

Существуют некоторые возможности для интеграции SWT и Swing , но я боюсь, что вы не можете просто "конвертировать"SWT Окно в JInternalFrame.Если ничто иное, Window представляет реальное окно на экране, в то время как JInternalFrame является так называемым легким объектом в Swing, оно не представляет окно на уровне ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...