ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2008年11月6日木曜日

JavaでCUIアプリケーションを作成する場合

私は仕事上、JavaでCUIアプリケーションを作成する機会が多々ある。
Javaではパラメータの解析処理を一から実装する必要があり、
独自にCUIアプリケーション作成用のライブラリを作成していたのだが、
apache commonsにこんな便利なライブラリが存在していた!!
今度使ってみよっと

[参考サイト]
apache-commons-cli
Jakarta Commons CLIでJavaコマンドラインも楽々

2008年11月5日水曜日

SwingでWindowの終了を制御する

SwingでWindowの終了時に確認メッセージを表示してから終了させたい場合、以下のように実装する。

DefaultCloseOperationをDO_NOTHING_ON_CLOSEに設定すると、Windowの閉じるボタンを押下したときに何も処理を行わない。
※GUIクラスはJFrameの実装とする
JFrame gui = new GUI();
gui.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
gui.setVisible(true);
GUIクラスの初期化処理などで以下のようにWindowListenerを追加し、windowClosing(WindowEvent)メソッドを実装する。


addWindowListener(new java.awt.event.WindowAdapter() {
 public void windowClosing(WindowEvent e) {
  if (JOptionPane.showConfirmDialog(this, "Confirmation") == OptionPane.OK_OPTION) {
   dispose();
  }
 }
});

Swingで任意のコンポーネントにフォーカスを設定する

JComponent#requestFocus()は非推奨のため、JComponent#requestFocusInWindow()を使用する。

[例] テキストボックスが未入力の場合にそのテキストボックスにフォーカスを設定する

if (txtBudRoot.getText().isEmpty()) {
txtBudRoot.requestFocusInWindow();
}

[参考サイト]
How to Use the Focus Subsystem
JComponent (Java Platform SE 6)