Открыть Visio с помощью Java-программы - PullRequest
3 голосов
/ 15 февраля 2012

Я открыл Visio из Java с помощью следующего кода ..

Display display = new Display();
        Shell shell = new Shell(display);
        shell.setText("Visio Example");
        shell.setLayout(new FillLayout());
        try {
            OleFrame frame = new OleFrame(shell, SWT.NONE);
            new OleClientSite(frame, SWT.NONE, "Visio.drawing");
        } catch (SWTError e) {
            System.out.println("Unable to open activeX control");
            display.dispose();
            return;
        }
        shell.setSize(800, 600);
        shell.open();

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

Теперь проблема в том, что она открывает страницу после ручного нажатия, т. Е. OK

Я хочу напрямую перейти на новую страницу, чтобы нарисовать, какие улучшения в моем коде необходимы для этого?

Это можно увидеть и на картинке.

спасибо.

enter image description here

1 Ответ

0 голосов
/ 17 февраля 2012

Одним из решений может быть проверка класса Java Robot, я не говорю, что это идеальное решение, возможно, далеко от него, но то, что позволяет вам класс Robot, - это инициирование событий щелчка на экране. Возможно, вы захотите сделать это позже, если это не решит эту конкретную проблему, это может быть полезно позже.

http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html

//Something like this
Robot robot = new Robot();
//Where 100 is x and y being the onscreen co-ordinates
robot.mouseMove(100,100);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);

Как сказано, это может быть не идеальное решение, но для ваших намеченных целей вы можете найти его полезным.

Редактировать: Вы также можете использовать этот класс для нажатия клавиш. например, нажмите несколько раз на вкладку, затем введите ключ. Это решение было бы далеко от идеала. Но сделал бы работу IMO

...