tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
536
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mo84 mo84 ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    7
    Hi,

    ich habe Excel in Java eingebettet - funktioniert auch alles. Aber die "Standart-Menüpunkte" "neu, öffnen, speichern, drucken, seitenansicht" sind sichtbar, aber deaktiviert (grau). Gibt es eine Möglichkeit zumindest "Speichern/ Speichern unter" zu aktivieren? Oder geht das nur über ein "SWT-Menü" was darüber liegt?

    Gruß,

    mo


    PS:

    http://www.tutorials.de/forum/java/1...-mit-java.html

    hier kann man gut sehen was ich meine
     

  2. #2
    DontBeEvil DontBeEvil ist offline Rookie
    Registriert seit
    May 2012
    Beiträge
    1
    Moi moi,

    erstmal tut mir leid, das ich diesen alten Thread hier ausgrabe, aber bin derzeit genau an dem selben Problem am verzweifeln.

    Habe in meinem java Tool ebenfalls Word eingebunden über die ole Schnittstelle.

    zwar konnte die oben genannten Befehle (new, save...) über die ole clientSite funktionen implementieren, jedoch finde ich keinen Weg die icons zu aktivieren.

    Bzw. suche ich nach einem weg, einzelne Befehle ( z.b. Drucken, Rechtschreibprüfung....) zu aktivieren oder zu deaktivieren.

    Gibt es dazu überhaupt eine Java seitige Lösung?

    Vielen Dank im Vorraus, hoffe jemand kann mir hier weiterhelfen.

    Anbei mein Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    
    import java.io.File;
     
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.SWTError;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.ole.win32.OLE;
    import org.eclipse.swt.ole.win32.OleAutomation;
    import org.eclipse.swt.ole.win32.OleClientSite;
    import org.eclipse.swt.ole.win32.OleFrame;
    import org.eclipse.swt.ole.win32.Variant;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.FileDialog;
    import org.eclipse.swt.widgets.Menu;
    import org.eclipse.swt.widgets.MenuItem;
    import org.eclipse.swt.widgets.MessageBox;
    import org.eclipse.swt.widgets.Shell;
     
    public class OleWordExample {
     
        private final Display display = new Display();
        private Shell shell = new Shell(display);
        private OleClientSite clientSite;
        private OleFrame frame;
        private String path = "";
     
        public OleWordExample() {
            shell.setSize(1024, 768);
            shell.setText("Word Example");
            shell.setLayout(new FillLayout());
        }
     
        private void createOleFrame() {
     
            try {
                frame = new OleFrame(shell, SWT.NONE);
                addMenu();
                createClientSite("Word.Document");
     
                OleAutomation oleAutomation = new OleAutomation(clientSite);
     
            } catch (SWTError e) {
                System.out.println("Unable to open activeX control");
                display.dispose();
                return;
            }
     
            shell.open();
     
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch()) {
                    display.sleep();
                }
            }
     
            display.dispose();
        }
     
        private void addMenu() {
     
            Menu menuBar = shell.getMenuBar();
            if (menuBar == null) {
                menuBar = new Menu(shell, SWT.BAR);
                shell.setMenuBar(menuBar);
            }
     
            MenuItem fileMenu = new MenuItem(menuBar, SWT.CASCADE);
            fileMenu.setText("&File");
            Menu menuFile = new Menu(fileMenu);
            fileMenu.setMenu(menuFile);
            frame.setFileMenus(new MenuItem[] { fileMenu });
     
            // Work
            MenuItem menuFileNew = new MenuItem(menuFile, SWT.CASCADE);
            menuFileNew.setText("New");
            menuFileNew.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(final SelectionEvent e) {
                    newFile("new");
                }
            });
     
            // work
            MenuItem menuFileOpen = new MenuItem(menuFile, SWT.CASCADE);
            menuFileOpen.setEnabled(false);
            menuFileOpen.setText("Open...");
            menuFileOpen.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(final SelectionEvent e) {
                    newFile("open");
                }
            });
     
            // work
            MenuItem menuFileSave = new MenuItem(menuFile, SWT.CASCADE);
            menuFileSave.setText("Save");
            menuFileSave.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(final SelectionEvent e) {
                    saveFile();
                }
            });
     
            // work
            MenuItem menuFileSaveAs = new MenuItem(menuFile, SWT.CASCADE);
            menuFileSaveAs.setText("Save As");
            menuFileSaveAs.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(final SelectionEvent e) {
                    saveAsFile();
                }
            });
     
            // work
            MenuItem menuFileExit = new MenuItem(menuFile, SWT.CASCADE);
            menuFileExit.setText("Exit");
            menuFileExit.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(final SelectionEvent e) {
                    shell.dispose();
                }
            });
        }
     
        private void newFile(String command) {
     
            if (clientSite.isDirty()) {
                MessageBox messageBox = new MessageBox(clientSite.getShell(),
                        SWT.YES | SWT.NO | SWT.CANCEL);
                messageBox.setMessage("Would you like to save the changes");
                int answer = messageBox.open();
     
                switch (answer) {
                case 64:
                    saveFile();
                    fileOpen(command);
                    break;
                case 128:
                    fileOpen(command);
                    break;
                default:
                    break;
                }
            } else {
                fileOpen(command);
            }
        }
     
        private void createClientSite(final String fileName) {
            if (clientSite != null) {
                clientSite.dispose();
            }
     
            if (fileName == "Word.Document") {
                clientSite = new OleClientSite(frame, SWT.NONE, fileName);
            } else {
                clientSite = new OleClientSite(frame, SWT.NONE, new File(fileName));
            }
     
            clientSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);
     
        }
     
        private void fileOpen(String file) {
     
            if (file == "new") {
                path = "";
                createClientSite("Word.Document");
            } else {
                FileDialog dialog = new FileDialog(clientSite.getShell(), SWT.OPEN);
                dialog.setFilterExtensions(new String[] { "*.doc", "*.docx" });
                String fileName = dialog.open();
                if (fileName != null) {
                    path = fileName;
                    createClientSite(fileName);
                }
            }
        }
     
        private void saveFile() {
     
            if (path == "") {
                saveAsFile();
            } else {
                clientSite.save(new File(path), true);
            }
     
        }
     
        private void saveAsFile() {
            FileDialog dialog = new FileDialog(clientSite.getShell(), SWT.SAVE);
            dialog.setFilterExtensions(new String[] { "*.doc", "*.docx" });
            final String savePath = dialog.open();
     
            if (savePath != null) {
                path = savePath;
                clientSite.save(new File(path), true);
            }
        }
     
        public static void main(final String[] args) {
            OleWordExample example = new OleWordExample();
            example.createOleFrame();
        }
     
    }
    Geändert von DontBeEvil (18.05.12 um 11:18 Uhr)
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 18.02.10, 15:28
  2. Antworten: 2
    Letzter Beitrag: 15.05.09, 14:29
  3. Flaue Farben bei "Save for Web" in CS3
    Von schleckerbeck im Forum Photoshop
    Antworten: 9
    Letzter Beitrag: 04.12.07, 22:24
  4. "Save As..."-Dialog erzwingen für IE...
    Von CHaoSlayeR im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 04.10.04, 06:11
  5. "unable to save result set" / DB zu klein oder zu voll?
    Von cocoon im Forum Relationale Datenbanksysteme
    Antworten: 7
    Letzter Beitrag: 12.05.03, 07:30