パッケージにクラスを作成する
ユーザーコントロールを作成して、JFrame(実際はJPanel) に配置します。
ユーザーコントロールは、Swing のコントロールを継承して作成しますが、
いくつか必要になるので、パッケージ化します。
※これは、通常のクラスの作成です
↓ソースフォルダ部分は、作成された Java プロジェクト毎に違います
JPanel のレイアウトは null にしておきます
↓パッケージの作成
↓パッケージにクラスを追加
プライベートな変数を作成して、getter と setter を作成します。
package myswing;
import javax.swing.JTextField;
public class LboxText extends JTextField {
private int _group = 0;
public int getGroup() {
return this._group;
}
public void setGroup(int arg) {
this._group = arg;
}
}
LboxText を JPanel に実装する
Bean の選択で選択できるようになっているので、既存のコントロールと
同じ要領で貼り付け、レイアウトのカスタマイズで位置や大きさを調整します
また、実装した getter setter により、プロパティとして値がセットできるので、
最初のフィールドに 1 、その他のフィールドに 2 をセットします
さらに、その他のフィールドをプロパティで、enabled を false にして使用不可にしておきます
グループ毎の使用可・不可切り替えボタン
入力処理としての pass のコントロールの準備です
( 関連ページ 【Java + Eclipse + Pleiades】 Window の基本テスト )
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(215, 23, 116, 31));
jButton.setText("切り替え");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
boolean base = lboxText.isEditable();
lboxText.setEditable(!base);
int cnt = jContentPane.getComponentCount();
for( int i = 0; i< cnt; i++) {
java.awt.Component child = jContentPane.getComponent(i);
try {
if ( ((LboxText)child).getGroup() == 2 ) {
child.setEnabled(base);
}
}
catch( Exception ex ) {
}
}
}
});
}
return jButton;
}
|