トップ 一覧 置換 検索 ヘルプ RSS ログイン

JavaでDBCPの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!セルを選択する
 public void selectCell(int vrow, int vcol){
    table.getSelectionModel().setSelectionInterval(vrow,vrow);
    table.getColumnModel().getSelectionModel().setSelectionInterval(vcol,vcol); 
  }

!!エンターキーで、次の列へ移動する
 public void setEnterForNextColumn(boolean enable){
    String action = "";
    if (enable){
      action = "selectNextColumnCell";
    } else {
      action = "selectNextRowCell";
    }
    KeyStroke enterPress = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false);
    InputMap im = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    im.put(enterPress,action);
  }

!!列の幅の調整
setAutoResizeModeでAUTO_RESIZE_SUBSEQUENT_COLUMNSを設定した場合、
各列に指定された列幅に対して、同じ幅を追加(削除)して幅を合わせる。
例えば、
・テーブル幅100
・列1幅:20
・列2幅:10
とした場合、幅100に合わせるために 100 - (20 + 10) = 70 を各列に割り振る。
結果、
・列1幅:20 + (70 / 2) = 55
・列2幅:10 + (70 / 2) = 45
となる。(みたい)

もし、列1と列2を 2:1 の比率で表示したい場合は
・列1幅:60
・列2幅:30
くらいで設定するとおおよそ、 2:1 になる。


!!JTableで一行毎に色を変える
http://guijava.180r.com/pJTable%A4%C7%B0%EC%B9%D4%CB%E8%A4%CB%BF%A7%A4%F2%CA%D1%A4%A8%A4%EB.html

{{code Java
public class BirowTableRenderer extends DefaultTableCellRenderer{
     private static final Color BIROW_COLOR = new Color(204, 204, 255);
     private static final Color ORG_COLOR=Color.WHITE;
     
     public Component getTableCellRendererComponent(JTable tb,
                             Object val,boolean isSelected,
                             boolean hasFocus,int r,int c){
 
         if(r % 2 == 0){
             setBackground(BIROW_COLOR);
         }else{
             setBackground(ORG_COLOR);
         }
         return super.getTableCellRendererComponent(tb,val,
                                     isSelected,hasFocus,r,c);
     }
 }
}}

レンダラー設定
{{code Java
 JTable tb = getTestTable();
 tb.setDefaultRenderer(Object.class,new BirowTableRenderer());
}}

!!再描画(更新)
revalidate で更新されない場合は
 updateUI
を使ってみる。
そのうち書くかも。
自作ので十分なような・・・。

{{category2 プログラミング言語,Java}}