java swing mvcパターン サンプル

View

package eo.sim.tool.view;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;

import eo.sim.tool.action.View03Action;

/**
 *
 *
 */
public class View03 extends JFrame {

	// 従業員番号
	JTextField text1 = null;
	// 従業員名
	JTextField text2 = null;
	// 職種
	JTextField text3 = null;

	public JTextField getText1() {
		return text1;
	}

	public void setText1(JTextField text1) {
		this.text1 = text1;
	}

	public JTextField getText2() {
		return text2;
	}

	public void setText2(JTextField text2) {
		this.text2 = text2;
	}

	public JTextField getText3() {
		return text3;
	}

	public void setText3(JTextField text3) {
		this.text3 = text3;
	}

	/**
	 * 開始メソッド
	 *
	 * @param args	パラメータ
	 */
	public static void main(String[] args){
		View03 frame = new View03();

		// 閉じるボタンをクリックされた場合の動作を設定
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// ウインドウのタイトルを設定
		frame.setTitle("mybatis-2.3.5とswingのサンプル");

		// フレームの X座標、Y座標、幅、高さを設定
		frame.setBounds(100, 200, 450, 220);

		// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
		frame.setVisible(true);
	}

	/**
	 * コンストラクタ
	 */
	public View03() {
		// ベースとなるパネルをLayoutManagerを無効にして作成
		JPanel panelBase = new JPanel();
		panelBase.setLayout(null);

		// ラベルを作成
		// 従業員番号
		JLabel label1 = new JLabel("従業員番号");
		// 位置を設定
		label1.setBounds(10, 10, 80, 30);
		// 従業員名
		JLabel label2 = new JLabel("従業員名");
		// 位置を設定
		label2.setBounds(10, 50, 80, 30);

		// 職種
		JLabel label3 = new JLabel("従業員名");
		// 位置を設定
		label3.setBounds(10, 90, 80, 30);

		// テキストを作成
		// 従業員番号
		text1 = new JTextField("7369");
		// サイズを設定
		text1.setPreferredSize(new Dimension(100, 14));
		// 枠を設定
		text1.setBorder(new BevelBorder(BevelBorder.LOWERED));
		// 位置を設定
		text1.setBounds(100, 10, 80, 30);

		// 従業員名
		text2 = new JTextField("");
		// サイズを設定
		text2.setPreferredSize(new Dimension(100, 14));
		// 枠を設定
		text2.setBorder(new BevelBorder(BevelBorder.LOWERED));
		// 位置を設定
		text2.setBounds(100, 50, 80, 30);

		// 従業員名
		text3 = new JTextField("");
		// サイズを設定
		text3.setPreferredSize(new Dimension(100, 14));
		// 枠を設定
		text3.setBorder(new BevelBorder(BevelBorder.LOWERED));
		// 位置を設定
		text3.setBounds(100, 90, 80, 30);

		// ボタンを作成
		JButton button1 = new JButton("検索");
		// 位置を設定
		button1.setBounds(200, 10, 80, 30);
		// アクションリスナー追加
		View03Action action = new View03Action(this);
		button1.addActionListener(action);

		// パネルに配置
		panelBase.add(label1);
		panelBase.add(label2);
		panelBase.add(label3);
		panelBase.add(text1);
		panelBase.add(text2);
		panelBase.add(text3);
		panelBase.add(button1);

		// ベースパネルを追加
		getContentPane().add(panelBase, BorderLayout.CENTER);
	}
}

Action

package eo.sim.tool.action;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import eo.sim.tool.service.EmpService;
import eo.sim.tool.view.View03;

public class View03Action implements ActionListener {
    private View03 view;

    public View03Action(View03 view) {
        this.view = view;
    }

    // イベントハンドラ (イベント発生時に自動的に呼び出される)
    public void actionPerformed(ActionEvent e) {

		try {

			EmpService empService = new EmpService();
			String empName = empService.getEmpName(view.getText1().getText());
			String job = empService.getJob(view.getText1().getText());

			view.getText2().setText(empName);
			view.getText3().setText(job);

		} catch (Exception e1) {
			// TODO 自動生成された catch ブロック
			e1.printStackTrace();
		}


    }
}

Service

package eo.sim.tool.service;

import com.ibatis.sqlmap.client.SqlMapClient;

import examples.dto.Emp;
import util.MyAppSqlConfig;

public class EmpService {

	public String getEmpName(String empno) throws Exception {
		SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
		/*
		 * DeptNoを指定して1件のDeptを取得
		 */
		int intEmpno = (Integer.valueOf(empno)).intValue();

		Emp emp = (Emp)sqlMap.queryForObject("getEmpByEmpno",intEmpno);
		return emp.getEname();

	}

	public String getJob(String empno) throws Exception {
		SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
		/*
		 * DeptNoを指定して1件のDeptを取得
		 */
		int intEmpno = (Integer.valueOf(empno)).intValue();

		Emp emp = (Emp)sqlMap.queryForObject("getEmpByEmpno",intEmpno);
		return emp.getJob();

	}
}
スポンサーリンク
google 6948682462
google 6948682462

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
google 6948682462