2012-06-30

[java][eclipse]ScrolledCompositeを使ってスクロールバーを表示する


コンポジットにスクロールバーを出したかったのだけれど、なかなかうまくいかなかったのでメモ

// ScrolledCompositeを作成する
ScrolledComposite scroll = new ScrolledComposite(parent,
SWT.H_SCROLL | SWT.V_SCROLL);
scroll.setLayout(new FillLayout());
// setMinSizeで指定された値よりも大きいとき、
// コンテンツをScrolledCompositeと同じ幅にリサイズする
scroll.setExpandHorizontal(true);
scroll.setExpandVertical(true);
// Compositeを作成する
Composite composite = toolkit.createComposite(scroll, SWT.NULL);
composite.setLayout(new GridLayout(1, false));
// ScrolledCompositeにCompositeをぶら下げる
scroll.setContent(composite);

~Compositeの中身~

// 指定したサイズより小さくなったらスクロールバーを表示する
scroll.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));

[java][eclipse][SWT]TextにsetBoundsでサイズを指定したのに指定したサイズにならない


「Text.setBounds(x, y, width, height);」でサイズを指定する
GridLayoutだと指定したサイズを無視して、自動的に最適なサイズに変換してしまうらしい。
http://www.coderanch.com/t/513576/GUI/java/SWT-Text-setSize-ignored-GridLayout

苦肉の策として、以下のようにコーディングしてみた.
これで何とか指定したサイズにすることができたけど、なんだかなぁ。

  FormToolkit toolkit = new FormToolkit(PlatformUI.getWorkbench().getDisplay());
  Composite composite= toolkit.createComposite(PlatformUI.getWorkbench().getDisplay().getActiveShell());
  composite.setLayout(new GridLayout(12, false));
  composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  Text text = toolkit.createText(toolkit.createComposite(composite), "");
  text.setTextLimit(4);

[AS400][FTP]426-UNABLE TO CONVERT DATA FROM CCSID 5026 TO CCSID 932: REASON 3028.


こんなメッセージが返ってきたら、コード変換がちゃんとできていない。
426-UNABLE TO CONVERT DATA FROM CCSID 5026 TO CCSID 932: REASON 3028.
426 DATA TRANSFER ENDED.
quote type c 932をするとか、BINARYでとってくるとかするとうまくいく。
com.ibm.as400.access.AS400FTPはas400ftp.getLastMessage()でメッセージを取得することができる。

2012-06-23

[excel]「#VALUE!」などのエラーを表示したくない


ISERROR(xxx)はxxxがエラーのときtrueを返す
xxx : エラーになりそうな数式や関数
以下のようにすると、エラーにならなかったときのみ、xxxの値がセルに表示される
= IF(ISERROR (xxx),"",xxx)

[java][String]0埋め数字


001みたいな文字列を出力したいとき
String.format("%1$03d", i);

String.formatを使う
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html#format(java.util.Locale, java.lang.String, java.lang.Object...)
書式
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/Formatter.html