【Java+Eclipse】 ユーザーコントロールの作成

パッケージにクラスを作成する
ユーザーコントロールを作成して、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;
	}