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とかに無理やり拡大すると表示できないことがある) 区切りがつくまで、もうしばらくかかりそうだ。