トップ «前の日(04-08) 最新 次の日(04-10)» 追記

おいぬま日報(不定期)

カテゴリ | 技術情報まとめWiki | 検索エンジンから来た人向け | RSS

2003年
4月
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



2003-04-09

@ [jFFFTP] 今日のjFFFTP

クラス数が多くなってきてごちゃごちゃしてたのでちょっとパッケージなどを整理。あとはHelpでライセンス情報などを表示できるようにした。ところでSWTでショートカットキーってどうやって割り当てるんだろう...

追記: メニューのアイテムに対しては、MenuItem#setAcceleratorを使えば良さそう。

追記2: って思いっきりSWT掲示板に書いてあるね。ただいまJFaceではどうやってメニューにショートカットキーを割り当てるのか調査中(仕事しろよ)。

@ [jface] メニューの表示

ちょいと時間があるのでメモ。JFaceでウィンドウにメニューを表示したい場合は、org.eclipse.jface.action.MenuManagerを使用すればいいらしい。概念的にはSWTと同じく、MenuManagerクラスがメニューバーおよびメニューのコンポーネントとなっているようだ。

Windowクラスを継承したクラスで、そのウィンドウにメニューを表示させるには、 createMenuManager メソッドをオーバライドすればよい。

package demo;
 
import org.eclipse.jface.action.*;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.widgets.*;
 
/**
 * Windowクラス 
 */
public class MyWindow extends ApplicationWindow {
 
    /**
     * コンストラクタ
     * 
     * @param parent このウィンドウの親のShell。
     * トップレベルのウィンドウの場合はnull。
     */
    public MyWindow(Shell parent) {
        super(parent);
    }
 
    /**
     * このウィンドウのShellの設定を行なう。
     */
    protected void configureShell(Shell shell) {
        super.configureShell(shell);
        shell.setText("へろうわーるど");
        shell.setSize(500, 200);
    }
     
    /**
     * このウィンドウのコンテンツを作成する。
     */
    protected Control createContents(Composite parent) {
        SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL | SWT.NULL);
        getMenuBarManager().updateAll(true);
        return parent;
    }
  
    /**
     * このウィンドウを作成する。
     */
    public void create() {
        addMenuBar();
        super.create();
    }
  
    /**
     * このウィンドウのMenuManagerを作成する。
     * MenuManagerに登録されているものが、メニューとして表示される。
     *
     * @return このウィンドウのMenuManager 
     */ 
    protected MenuManager createMenuManager() {
        // メニューバーの作成
        MenuManager bar = new MenuManager();
        // "File"メニューの作成
        MenuManager fileMenu = new MenuManager("File");
        // メニューのアイテムを作成
        Action openAction = new MyAction("Open");
        Action saveAction = new MyAction("Save");
        Action exitAction = new MyAction("Exit");
        fileMenu.add(openAction); 
        fileMenu.add(saveAction);
        fileMenu.add(new Separator());
        fileMenu.add(exitAction);
        bar.add(fileMenu);
        return bar;
    }
}

なお、このMyWindowクラスでは、createメソッドを継承して、addMenuBarメソッドを呼んでいるが、これをsuper.createの前に行なわないとNullPointerExceptionが発生するので注意*1。メニューに追加しているMyActionというのは、org.eclipse.jface.action.Actionを継承したクラスで、このクラスのrunメソッド内で、メニュー押下時のコードを記述していけばOK。

MyActionのサンプルコードはこんな感じ。

package demo;
 
import org.eclipse.jface.action.Action;
 
/**
 * Action 
 */
public class MyAction extends Action {
 
    public MyAction(String text) {
        super(text);
    }
     
    public void run() {
        System.out.println("ほげほげ");
    }
}

なお、MyWindowクラスを使用するMainのコードは前回と同じ。

上記のコードをコソパイルして実行するとこんな感じでメニューが表示される(GTK+版の場合)

ウィンドウ

*1 なんでかはようわかりましぇん。きっとコンポーネントを作成する順序の問題なんでしょう。


2004-04-09

@ [memo] 不要分岐の除去を中心とするオブジェクト高度最適化の研究

コンパイラの最適化の研究の論文。役に立ちそうなのでメモ。

@ [linux] qmailsolutions

企業のページみたい。でも情報が色々ある。


2005-04-09

@ [win] Poderosa

.NETで実装されたウィンドウズ用タブ型ターミナルエミュレータ。スクリーンショットやFAQを見るとCygwinのシェルも使えるようです。これは便利そう。(from メモの日々

@ [java] Buoy

Swingを使い易くするためのツールキットだそうです。変な名前。IBM developerWorks Buoyを使って、単純なJava UIプログラミングを容易により。

@ [life] 花見

昔の職場の人と鶴見の県立三ツ池公園というところに行って来ました。桜の木はそんなに多くなかったですが、綺麗でかついいポジションで見れました*1。来週はみっちり雨が降るようなので、まさに絶好のタイミングでしたね。ちなみに自分は何も買っていかずにみんなから色々食べ物もらっていたのでかーなーり悪い気が...今度何か奢りますね。

*1 朝早くから場所取ってくれた人感謝!


Bookmark: あんてな | ぶっくまーく | 覚え書き | Project Amateras | ExcelPettyCashBook | FreeStyle Wiki

2002|10|11|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|11|12|
2008|01|02|03|04|05|06|07|08|10|11|12|
人気ブログランキング - おいぬま日報(不定期)