draw2dメモ

panel(figureすべて?)のデフォルトのlayoutmanagerはnull
layoutmanagerがnullなら左上に追加した順に描画する。
つまり、最後に追加したFigureが一番上
しかし、nullだとpanelのsizeは大きくしかならない。

childrenのFigureをサイズを変更して、親のサイズをchildrenに反映させたい場合
親のfigureで、revalidate();を呼び出すといい。

ホイールで横スクロール

ホイールで横スクロール(立てスクロールが非表示なら万事うまくいく)
Focusに注意
//canvas.getVerticalBar().setEnabled(false);//無効にしてもいいみたい
canvas.getVerticalBar().addSelectionListener(new ScrollChange());
canvas.setFocus();
}


public class ScrollChange implements SelectionListener{

/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent e) {
if(!canvas.getVerticalBar().isVisible()){
int inc=canvas.getHorizontalBar().getIncrement();
if(e.detail==16777217){//up scroll
inc*=-1;
}
canvas.scrollToX(canvas.getHorizontalBar().getSelection()+inc);
}
}

/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetDefaultSelected(SelectionEvent e) {
// TODO Auto-generated method stub

}

}

スペクトログラムは鬼門だった。

snackライブラリーを使ってのスペクトログラムの開発に進んだのは無理があったな。日本語名通らないのはさておき、一度に処理できるのは現実的には数分ほどだし、画像も分割しないと表示できない。
(元画像が小さくても、60000*60000とかに無理やり拡大すると表示できないことがある) 区切りがつくまで、もうしばらくかかりそうだ。