« 紹介状作成 NeoOffice マクロ | トップページ | Stand Alone PVT Server »

2009年9月28日 (月)

dialog が開いたら特定の JTextField にフォーカス

AllergyEditor が開いたら「要因」にフォーカスする。

client/AllergyEditor.java

dialog = pane.createDialog(inspector.getContext().getFrame(), ClientContext.getFrameTitle("アレルギー登録"));

//↓  dialog が開いたら FactorFld にフォーカスを当てる
dialog.addWindowListener(new WindowAdapter(){
  @Override
  public void windowOpened(WindowEvent e) {
    view.getFactorFld().requestFocusInWindow();
  }
});
//↑

 

PhysicalEditor が開いたら「体重」にフォーカスする。

client/PhysicalEditor.java

dialog = pane.createDialog(inspector.getContext().getFrame(), ClientContext.getFrameTitle("身長体重登録"));

//↓  dialog が開いたら WeightFld にフォーカスを当てる
dialog.addWindowListener(new WindowAdapter(){
  @Override
  public void windowOpened(WindowEvent e) {
    view.getWeightFld().requestFocusInWindow();
  }
});
//↑

 

患者検索タブをクリックしたらキーワードフィールドにフォーカスする。

plugin/PatientSearchImpl.java

public void enter() {
  controlMenu();
  //↓ 入ってきたら,キーワードフィールドにフォーカス
  Runnable r = new Runnable() {
    public void run() {
      view.getKeywordFld().requestFocusInWindow();
    }
  };
  SwingUtilities.invokeLater(r);
//↑
}

【09/10/10追記】上記だけだと,起動後最初の表示の時にフォーカスが取れないことがあった。Dolphin.java の変更で対応。

client/Dolphin.java

//
// タブの切り替えで plugin.enter() をコールする
//
tabbedPane.addChangeListener(new ChangeListener() {

  public void stateChanged(ChangeEvent e) {
    int index = tabbedPane.getSelectedIndex();
    MainComponent plugin = (MainComponent) providers.get(String.valueOf(index));
    if (plugin.getContext() == null) {
      plugin.setContext(Dolphin.this);
      plugin.start();
      tabbedPane.setComponentAt(index, plugin.getUI());
//↓
//  } else {
//    plugin.enter(); // これだと,start() した最初は enter() しないことになる
//↑
    }
//↓
    plugin.enter();
//↑
    mediator.addChain(plugin);
    }
  });

 

マスター検索のとき,キーワードフィールドにフォーカスする。

order/MasterPanel.java

public void enter() {
  setItemCount(tableModel.getObjectCount());
//↓
  Runnable r = new Runnable() {
    public void run() {
      keywordField.requestFocusInWindow();
    }
  };
  SwingUtilities.invokeLater(r);
//↑
}

« 紹介状作成 NeoOffice マクロ | トップページ | Stand Alone PVT Server »

OpenDolphin」カテゴリの記事