iLEDについて

Javaサンプル

Netbeans

Libre Office Basicマクロ

その他


Author of This Site:
M. Kom. (kom9kmail@gmail.com)
Spam対策のため@マークは全角になっていますから、メール送信時には半角にしてください。

Swingコンポーネントの配列化

たくさんのSwingコンポーネント(jLabel,jRadioButton,jButtonなど)を使う場合には、番号で管理したほうが効率的なことがよくあります。 番号で管理とくれば配列の出番ですが、Swingコンポーネントを配列として扱うサンプルを紹介します。
このサンプルでは、画像表示のためのjLabelを8個、jRadioButtonを8個扱い、それぞれを配列にセットしてプログラム内で管理します。 起動時にまず0行0列と1行3列に画像を表示し、jButton1をクリックすると0行3列(1行4列)のjLabelにファイルから読み込んだ画像を表示します。

動作画面例

fig

Calendar Input Dialog

K., 2016


プログラムはいつものようにNetBeansのGUIデザイナを使用していますので、ソースコードは手動入力する部分のみ示します。


import javax.swing.ImageIcon;
/**
 *
 * @author K
 */
public class ArraySample extends javax.swing.JFrame {
	//最初の行のimport文を忘れないように。
	ImageIcon[] IconArray= new ImageIcon[5]; //使用する画像ファイルの個数を指定 
	javax.swing.JLabel[][] LabelArray= new javax.swing.JLabel[2][4]; //JLabelの行数,列数を指定。
	javax.swing.JRadioButton[][] RadioArray= new javax.swing.JRadioButton[3][2]; //JRadioButtonの行数,列数を指定。
	/**
	 * Creates new form HairetuSample
	 */
	public ArraySample() {
		initComponents();

		//使用する画像ファイルはこのプロジェクトのclassesフォルダに入れておく。
		IconArray[0]=new ImageIcon(getClass().getResource("file1.jpg"));
		IconArray[1]=new ImageIcon(getClass().getResource("file2.jpg"));
		IconArray[2]=new ImageIcon(getClass().getResource("file3.jpg"));
		
		LabelArray[0][0]=jLabel1;
		LabelArray[0][1]=jLabel2;
		LabelArray[0][2]=jLabel3;
		LabelArray[0][3]=jLabel4;
		LabelArray[1][0]=jLabel5;
		LabelArray[1][1]=jLabel6;
		LabelArray[1][2]=jLabel7;
		LabelArray[1][3]=jLabel8;
		
		LabelArray[0][0].setIcon(IconArray[0]); //1行1列のLabelに1番目の画像を表示
		LabelArray[1][3].setIcon(IconArray[1]); //2行4列のLabelに2番目の画像を表示
		
		RadioArray[0][0] = jRadioButton1; 
		RadioArray[1][0] = jRadioButton2; 
		RadioArray[2][0] = jRadioButton3; 
		RadioArray[0][1] = jRadioButton4; 
		RadioArray[1][1] = jRadioButton5; 
		RadioArray[2][1] = jRadioButton6; 
		
		RadioArray[0][0].setSelected(true); //ラジオボタンをセレクトにする
		RadioArray[1][1].setSelected(true); //ラジオボタンをセレクトにする
		
	}

    //                           
    private void initComponents() {
		//NetBeansにより自動生成されるコード。内容省略
    }//                         

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
		//ボタンをクリックすると、ランダムに図の0番から2番の中から一つを1行3列(LabelArray[0][2])に表示
		int n= (int)(Math.random()*3.0);
		LabelArray[0][2].setIcon(IconArray[n]); //IconArrayの中に画像が入っているのでその中の一つを選ぶ
		
    }                                        

	/**
	 * @param args the command line arguments
	 */
	public static void main(String args[]) {
		//内容省略
	}
}