Hatena::ブログ(Diary)

Fly me to the Juno! このページをアンテナに追加 RSSフィード

2008-02-24

およ。TrayItemにメニューが表示されないよ。

SWTのコネタ。

  • MessageDialogを表示中はTrayItem上にMenuを表示できません。
  • Shellがopenされて下記のループに入っていないとTrayItem上にMenuを表示できません。
    shell.open();
    while(!shell.isDisposed()){
      if(!display.readAndDispatch()){
        display.sleep();
      }
    }

少なくともx86.gtk.linux上では。

どうでもいいことですが、上記のwhileループはいつもどうやって書いたら良いかすぐに忘れます。Snippetを登録しておくんですが、それもワークスペースを跨いだり、環境を跨いだりすると使えないし・・・。Snippetのネットワーク共有ができたら面白いんですが。

2007-06-28

似非FireFoxが作れるようになったよー。

EuropaからXULRunnerを組み込めるようになりました。

ってーことはえせFireFoxJavaで組めるようになったってーこと。

XULRunnerはhttp://developer.mozilla.org/ja/docs/XULRunnerから落としてください。

で、Browserコンポーネントインスタンスを作る前に

System.setProperty()でパスを設定しましょう。

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class BrowserTest {

	public static void main(String[] args) {
		System.setProperty(
                    "org.eclipse.swt.browser.XULRunnerPath", 
                    "E:\\eclipse-3.3RC4\\xulrunner");
		Display display = Display.getDefault();
		Shell shell = new Shell(display);
		shell.setLayout(new FillLayout());
		Browser browser = new Browser(shell, SWT.MOZILLA);
		browser.setUrl(
                     "http://homepage2.nifty.com/k_maeda/labo/brows.html"
                );
		shell.open();
		
	    while (!shell.isDisposed ()){
	        if (!display.readAndDispatch ()){
	        display.sleep ();
	        }
	      }
		shell.dispose();
		display.dispose();
		
	}

}

このスタイルは読みづらいなー。ごめんなさい。勝手にコピッてくださいな。

よういちろうさんのところにはBrowserコンポーネントを使うと

こんなに面白いんだよってことが書かれていますので、

勝手リンクです。

http://www.eisbahn.jp/yoichiro/2007/06/web_1.html

Eclipse的に何でも有りな世界がすぐそこまできてるのかもね。