Отображение календаря Google в Java JFrame

У меня возникли проблемы с отображением календаря Google в java jframe.

Отредактировано: я вижу календарь Google, но он имеет синий фон, что затрудняет просмотр событий.

Вот фрагмент моего кода

temp — это имя пользователя Google.

private void getGoogleCalendar(){
    googlepane=new JPanel(new BorderLayout());

    String s="https://www.google.com/calendar/b/0/[email protected]&ctz=America/New_York&gsessionid=OK";
    JEditorPane tp=new JEditorPane();
    try {
        HTMLEditorKit kit = new HTMLEditorKit();    
        StyleSheet styles =kit.getStyleSheet();
        styles.importStyleSheet(new URL(s));

        kit.setStyleSheet(styles);
        kit.install(tp);
        tp.setContentType("text/html");
        tp.setEditorKit(kit);
        tp.addHyperlinkListener(this);
        tp.setEditable(false);
        tp.setPage(s);
        tp.setBackground(Color.white);
    } catch (IOException e) {
        e.printStackTrace();
    }

    googlepane.add(tp, BorderLayout.CENTER);

    return;
}

person Steven Feldman    schedule 07.03.2011    source источник


Ответы (1)


JEditorPane не может полностью отобразить веб-страницу, поскольку поддерживает только текст html. Страница Календаря Google включает "JavaScript". Таким образом, это становится другим отображением в случае веб-браузера и в случае использования JEditorPane.

Я рекомендую использовать нативную библиотеку Swing (The DJ Project).


Образец "JavascriptExecution.java" используется для подтверждения движения.

Оригинал

webBrowser.setHTMLContent(htmlContent);

Изменить следующие

final String urlString =
   "https://www.google.com/calendar/"   
  + "b/0/htmlembed?src=0ap0d38a4vobr8i81805dla3hk@group.calendar.google.com"
  + "&ctz=America/New_York&gsessionid=OK";

webBrowser.navigate(urlString);

И вы должны добавить следующие три файла jar в проход класса.

  • DJNativeSwing.jar
  • DJNativeSwing-SWT.jar
  • swt-3.7M5-win32-win32-x86.jar

Эта библиотека swt находится в [Каталоге, в котором находится библиотека]/lib. Или вы можете получить (веб-сайт)

person Yu Sun corn    schedule 07.03.2011
comment
Google предлагает версию только в формате html: google.com/calendar/b/0/ Но он по-прежнему отображается неправильно. Я продолжаю получать сообщение об ошибке, вызванное: java.lang.ClassNotFoundException: org.eclipse.swt.SWT, когда я пытаюсь использовать проект Dj. - person Steven Feldman; 08.03.2011
comment
Извините, я неправильно понял это. Я добавил описание DJ Project. - person Yu Sun corn; 08.03.2011
comment
Я бы предпочел не иметь специфичную для ОС банку, JEditorPane отображает html-страницу, но имеет синий фон вместо белого. - person Steven Feldman; 08.03.2011
comment
Немного обидно, что GUI не зависит от ОС. Кажется, проблема JEditorPane в том, что таблица стилей не применяется. - person Yu Sun corn; 08.03.2011
comment
Я попытался применить таблицу стилей, но никаких изменений. Я обновил код, с которым работаю, можете ли вы сказать мне, правильно ли я это сделал? - person Steven Feldman; 08.03.2011
comment
HTML-файл календаря совместим с HTML 4.01. Однако JEditorPane соответствует только HTML 3.2. (Например, атрибут класса CSS не может быть интерпретирован в HTML 3.2.) Решение с JEditorPane может быть трудным, хотя и достойным сожаления. Я больше не знаю. - person Yu Sun corn; 10.03.2011
comment
Спасибо за ответ, я заметил, что есть ссылка на ical и xml, есть ли хороший графический интерфейс для календаря, который будет работать лучше? - person Steven Feldman; 10.03.2011
comment
Я не знаю iCal. И я рекомендую вам опубликовать его как новый вопрос. - person Yu Sun corn; 11.03.2011