4

package jp.co.test.controller;

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.UnsupportedLookAndFeelException;

import jp.co.test.common.Common;
import jp.co.test.common.Constant;
import jp.co.test.common.ReadExcelProcess;
import jp.co.test.logic.ModelCreate;

/**
 * ツールの基本処理クラス
 */
public class ToolsAwt extends JFrame implements ActionListener {

 /*
  * クラスのserialVersionUID
  */
 private static final long serialVersionUID = 1L;
 
 /**
  * 全局変数の定義
  */
 // ボタン
 public JButton btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10;
 // Labelエリア
 public JLabel label1, label2, label3, label4, label5, label6, label7,
   label8, label9;
 // テキストボックス
 public JTextField textField1, textField2, textField3, textField4,
   textField5, textField6;
 // フォルダ変数
 public String folder1, folder2, folder3, folder4, folder5, folder6;
 
 /**
  * 主処理
  */
 public static void main(String[] arg) {
  
  // ツールクラスの初期化
  ToolsAwt toosAwt = new ToolsAwt();
  
  /*
   * グリッドウィンドウを新規する
   */
  // 容器の初期化
  Container contentPane = toosAwt.getContentPane();
  // グリッドレイアウトの初期化
  GridBagLayout layout = new GridBagLayout();
  // 容器にレイアウトモデルを追加する
  contentPane.setLayout(layout);
  // グリッドウィンドウの容器の初期化
  GridBagConstraints gbc = new GridBagConstraints();
  
  // 入力部の作成
  toosAwt.gridInputWindow(contentPane, layout, gbc);
  // 新規部の作成
  toosAwt.gridCreatWindow(contentPane, layout, gbc);
  // ソース部の作成
  toosAwt.gridSourceWindow(contentPane, layout, gbc);
  // アプリケーション終了部
  toosAwt.gridExitWindow(contentPane, layout, gbc);
  
  // ウィンドウのタイトルを設定する
  toosAwt.setTitle("自動化ツール");
  // ウィンドウのサイズを自動調整する
  toosAwt.pack();
  // ウィンドウの表示位置を設定する
  toosAwt.setLocation(350, 300);
  // ウィンドウの
  toosAwt.setVisible(true);
  
 }
 
 /**
  * 入力部の作成する
  *
  * @param contentPane           容器
  * @param layout                レイアウトモデル
  * @param gbc                   パラメータクラス
  */
 private void gridInputWindow(Container contentPane, GridBagLayout layout,
   GridBagConstraints gbc) {
  
  /*
   * ウィンドウの入力部のタイトル
   */
  // ヘッダー位置:入力パス
  gbc.gridx = 0;
  gbc.gridy = 0;
  // 一行に100つセルを含める
  gbc.gridwidth = 100;
  // 一列に一つセルを含める
  gbc.gridheight = 1;
  // エリアのサイズを自動調整する
  gbc.fill = GridBagConstraints.BOTH;
  // 文字列の横向表示位置(左詰)
  gbc.weightx = 2.0;
  // 文字列の縱向表示位置(センター:デフォルト値)
  gbc.weighty = 0.0;
  // ヘッダー行にLabelを追加し、表示される文字列を設定する
  label1 = new JLabel("Input情報");
  // 表示される文字列のフォントを設定する
  label1.setFont(new Font("SansSerif", Font.PLAIN, 18));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 5, 0, 0);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label1, gbc);
  // 容器にラベルを追加する
  contentPane.add(label1);
  
  /*
   * ウィンドウの入力部ファイルの格納パスラベルを指定する部
   */
  // 入力詳細部:入力ファイル01のラベル表示部
  gbc.gridx = 0;
  gbc.gridy = 1;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にLabe2を追加し、表示される文字列を設定する
  label2 = new JLabel("テーブル定義書Path");
  // 表示される文字列のフォントを設定する
  label2.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 30, 0, 0);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label2, gbc);
  // 容器にラベルを追加する
  contentPane.add(label2);
  
  /*
   * ウィンドウの入力部ファイルの格納パスを指定する部
   */
  // 入力詳細部:入力ファイル01の格納パス指定部
  gbc.gridx = 6;
  gbc.gridy = 1;
  // 一行に85つセルを含める
  gbc.gridwidth = 85;
  // ヘッダー行にtextField1を追加し、表示される文字列を設定する
  textField1 = new JTextField("C:\\個人資料\\05_成果物\\ツール\\入力\\テーブル定義書");
  // 表示される文字列のフォントを設定する
  textField1.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // テキストボックスの非活性化制御を設定する
  textField1.setEditable(false);
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 2, 0, 0);
  // エリアの背景色をダークグレーに設定する
  textField1.setBackground(Color.PINK);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(textField1, gbc);
  // 容器にラベルを追加する
  contentPane.add(textField1);
  
  /*
   * ウィンドウの入力部ファイルの名称を指定する部
   */
  // 入力詳細部:入力ファイル01のファイル名称を指定部
  gbc.gridx = 91;
  gbc.gridy = 1;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にbtn1を追加し、表示される文字列を設定する
  btn1 = new JButton("SelFile1");
  // ボタンに事件追加処理
  btn1.addActionListener(this);
  // 表示される文字列のフォントを設定する
  btn1.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // エリアの背景色をダークグレーに設定する
  btn1.setBackground(Color.PINK);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn1, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn1);
  
  // 入力詳細部:入力ファイル02のラベル表示部
  gbc.gridx = 0;
  gbc.gridy = 2;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にlabel3を追加し、表示される文字列を設定する
  label3 = new JLabel("テーブル一覧Path");
  // 表示される文字列のフォントを設定する
  label3.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 30, 0, 0);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label3, gbc);
  // 容器にラベルを追加する
  contentPane.add(label3);
  
  /*
   * ウィンドウの入力部ファイルの格納パスを指定する部
   */
  // 入力詳細部:入力ファイル02の格納パス指定部
  gbc.gridx = 6;
  gbc.gridy = 2;
  // 一行に85つセルを含める
  gbc.gridwidth = 85;
  // ヘッダー行にtextField2を追加し、表示される文字列を設定する
  textField2 = new JTextField("C:\\個人資料\\05_成果物\\ツール\\入力\\テーブル一覧");
  // テキストボックスの非活性化制御を設定する
  textField2.setEditable(false);
  // 表示される文字列のフォントを設定する
  textField2.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 2, 0, 0);
  // エリアの背景色をダークグレーに設定する
  textField2.setBackground(Color.PINK);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(textField2, gbc);
  // 容器にラベルを追加する
  contentPane.add(textField2);
  
  /*
   * ウィンドウの入力部ファイルの名称を指定する部
   */
  // 入力詳細部:入力ファイル02のファイル名称を指定部
  gbc.gridx = 91;
  gbc.gridy = 2;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にbtn2を追加し、表示される文字列を設定する
  btn2 = new JButton("SelFile2");
  // ボタンに事件追加処理
  btn2.addActionListener(this);
  // 表示される文字列のフォントを設定する
  btn2.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // エリアの背景色をダークグレーに設定する
  btn2.setBackground(Color.PINK);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn2, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn2);
  
  /*
   * 動作ボタンを作成する
   */
  // 入力詳細部:指定した入力資料によって、出力ファイルを作成するボタンを追加する
  gbc.gridx = 97;
  gbc.gridy = 1;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // 一列に2つセルを含める
  gbc.gridheight = 2;
  // ヘッダー行にbtn7を追加し、表示される文字列を設定する
  btn7 = new JButton("Set");
  // 表示される文字列のフォントを設定する
  btn7.setFont(new Font("SansSerif", Font.PLAIN, 15));
  // ボタンに事件追加処理
  btn7.addActionListener(this);
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 5, 0, 0);
  // エリアの背景色をダークグレーに設定する
  btn7.setBackground(Color.CYAN);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn7, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn7);
  
 }
 
 /**
  * 新規部の作成する
  *
  * @param contentPane           容器
  * @param layout                レイアウトモデル
  * @param gbc                   パラメータクラス
  */
 private void gridCreatWindow(Container contentPane, GridBagLayout layout,
   GridBagConstraints gbc) {
  
  /*
   * ウィンドウの新規部のタイトル
   */
  // ヘッダー位置:新規ファイル
  gbc.gridx = 0;
  gbc.gridy = 3;
  // 一行に100つセルを含める
  gbc.gridwidth = 100;
  // 一列に一つセルを含める
  gbc.gridheight = 1;
  // ヘッダー行にlabel4を追加し、表示される文字列を設定する
  label4 = new JLabel("Create情報");
  // 表示される文字列のフォントを設定する
  label4.setFont(new Font("SansSerif", Font.PLAIN, 18));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 5, 0, 0);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label4, gbc);
  // 容器にラベルを追加する
  contentPane.add(label4);
  
  /*
   * ウィンドウの新規部出力ファイルの格納パスラベルを設定する
   */
  // 設定詳細部:新規出力情報の指定
  gbc.gridx = 0;
  gbc.gridy = 4;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にlabel5を追加し、表示される文字列を設定する
  label5 = new JLabel("SQL出力格納Path");
  // 表示される文字列のフォントを設定する
  label5.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 30, 0, 0);
  // エリアの背景色をダークグレーに設定する
  label5.setBackground(Color.darkGray);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label5, gbc);
  // 容器にラベルを追加する
  contentPane.add(label5);
  
  /*
   * ウィンドウの新規部出力ファイルの格納パスを指定する部
   */
  // 設定詳細部:出力情報(保存フォルダ)の指定部
  gbc.gridx = 6;
  gbc.gridy = 4;
  // 一行に85つセルを含める
  gbc.gridwidth = 85;
  // ヘッダー行にtextField3を追加し、表示される文字列を設定する
  textField3 = new JTextField("C:\\pleiades\\eclipse\\workspace\\nssol_tools\\src\\jp\\co\\nssol\\sql");
  // テキストボックスの非活性化制御を設定する
  textField3.setEditable(false);
  // 表示される文字列のフォントを設定する
  textField3.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 2, 0, 0);
  // エリアの背景色をダークグレーに設定する
  textField3.setBackground(Color.LIGHT_GRAY);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(textField3, gbc);
  // 容器にラベルを追加する
  contentPane.add(textField3);
  
  /*
   * ウィンドウの新規部出力ファイルの名称を指定する部
   */
  // 設定詳細部:出力ファイル名称を指定部
  gbc.gridx = 91;
  gbc.gridy = 4;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にbtn3を追加し、表示される文字列を設定する
  btn3 = new JButton("SelFile3");
  // ボタンに事件追加処理
  btn3.addActionListener(this);
  // 表示される文字列のフォントを設定する
  btn3.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // エリアの背景色をダークグレーに設定する
  btn3.setBackground(Color.LIGHT_GRAY);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn3, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn3);
  
  /*
   * 動作ボタンを作成する
   */
  // 入力詳細部:指定した入力資料によって、出力ファイルを作成するボタンを追加する
  gbc.gridx = 97;
  gbc.gridy = 4;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にbtn8を追加し、表示される文字列を設定する
  btn8 = new JButton("Make");
  // 表示される文字列のフォントを設定する
  btn8.setFont(new Font("SansSerif", Font.PLAIN, 15));
  // ボタンに事件追加処理
  btn8.addActionListener(this);
  // エリアの背景色をダークグレーに設定する
  btn8.setBackground(Color.GREEN);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn8, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn8);
 }
 
 /**
  * ソース部の作成する
  *
  * @param contentPane           容器
  * @param layout                レイアウトモデル
  * @param gbc                   パラメータクラス
  */
 private void gridSourceWindow(Container contentPane, GridBagLayout layout,
   GridBagConstraints gbc) {
  
  /*
   * ウィンドウのソース部のタイトル
   */
  // ヘッダー位置:ソース情報
  gbc.gridx = 0;
  gbc.gridy = 5;
  // 一行に100つセルを含める
  gbc.gridwidth = 100;
  // 一列に一つセルを含める
  gbc.gridheight = 1;
  // ヘッダー行にLabelを追加し、表示される文字列を設定する
  label6 = new JLabel("Source情報");
  // 表示される文字列のフォントを設定する
  label6.setFont(new Font("SansSerif", Font.PLAIN, 18));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 5, 0, 0);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label6, gbc);
  // 容器にラベルを追加する
  contentPane.add(label6);
  
  /*
   * ウィンドウのソース部ファイルの格納フォルダラベルを指定する部
   */
  // ソース詳細部:出力ソースのラベル01表示部
  gbc.gridx = 0;
  gbc.gridy = 6;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にlabel7を追加し、表示される文字列を設定する
  label7 = new JLabel("DAO出力格納Path");
  // 表示される文字列のフォントを設定する
  label7.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 25, 0, 0);
  // エリアの背景色をダークグレーに設定する
  label7.setBackground(Color.darkGray);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label7, gbc);
  // 容器にラベルを追加する
  contentPane.add(label7);
  
  /*
   * ウィンドウのソース部ファイルの格納フォルダを指定する部
   */
  // ソース詳細部:出力ソースのファイル01の格納フォルダ
  gbc.gridx = 6;
  gbc.gridy = 6;
  // 一行に85つセルを含める
  gbc.gridwidth = 85;
  // ヘッダー行にtextField4を追加し、表示される文字列を設定する
  textField4 = new JTextField("C:\\pleiades\\eclipse\\workspace\\nssol_tools\\output\\dao");
  // テキストボックスの非活性化制御を設定する
  textField4.setEditable(false);
  // 表示される文字列のフォントを設定する
  textField4.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 2, 0, 0);
  // エリアの背景色をダークグレーに設定する
  textField4.setBackground(Color.ORANGE);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(textField4, gbc);
  // 容器にラベルを追加する
  contentPane.add(textField4);
  
  /*
   * ウィンドウのソース部ファイルの名称を指定する
   */
  // ソース詳細部:出力ファイル01のファイル名称を指定部
  gbc.gridx = 91;
  gbc.gridy = 6;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にbtn4を追加し、表示される文字列を設定する
  btn4 = new JButton("SelFile4");
  // ボタンに事件追加処理
  btn4.addActionListener(this);
  // 表示される文字列のフォントを設定する
  btn4.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // エリアの背景色をダークグレーに設定する
  btn4.setBackground(Color.ORANGE);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn4, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn4);
  
  /*
   * ウィンドウのソース部ファイルの格納フォルダラベルを指定する部
   */
  // ソース詳細部:出力ソースのラベル02表示部
  gbc.gridx = 0;
  gbc.gridy = 7;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にlabel8を追加し、表示される文字列を設定する
  label8 = new JLabel("DTO出力格納Path");
  // 表示される文字列のフォントを設定する
  label8.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 25, 0, 0);
  // エリアの背景色をダークグレーに設定する
  label8.setBackground(Color.darkGray);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label8, gbc);
  // 容器にラベルを追加する
  contentPane.add(label8);
  
  /*
   * ウィンドウのソース部ファイルの格納フォルダを指定する部
   */
  // ソース詳細部:出力ソースのファイル02の格納フォルダ
  gbc.gridx = 6;
  gbc.gridy = 7;
  // 一行に85つセルを含める
  gbc.gridwidth = 85;
  // ヘッダー行にtextField5を追加し、表示される文字列を設定する
  textField5 = new JTextField("C:\\pleiades\\eclipse\\workspace\\nssol_tools\\output\\model");
  // テキストボックスの非活性化制御を設定する
  textField5.setEditable(false);
  // 表示される文字列のフォントを設定する
  textField5.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 2, 0, 0);
  // エリアの背景色をダークグレーに設定する
  textField5.setBackground(Color.ORANGE);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(textField5, gbc);
  // 容器にラベルを追加する
  contentPane.add(textField5);
  
  /*
   * ウィンドウのソース部ファイルの名称を指定する
   */
  // ソース詳細部:出力ファイル02のファイル名称を指定部
  gbc.gridx = 91;
  gbc.gridy = 7;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にbtn5を追加し、表示される文字列を設定する
  btn5 = new JButton("SelFile5");
  // ボタンに事件追加処理
  btn5.addActionListener(this);
  // 表示される文字列のフォントを設定する
  btn5.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // エリアの背景色をダークグレーに設定する
  btn5.setBackground(Color.ORANGE);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn5, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn5);
  
  /*
   * ウィンドウのソース部ファイルの格納フォルダラベルを指定する部
   */
  // ソース詳細部:出力ソースのラベル03表示部
  gbc.gridx = 0;
  gbc.gridy = 8;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にlabel9を追加し、表示される文字列を設定する
  label9 = new JLabel("Mapping格納Path");
  // 表示される文字列のフォントを設定する
  label9.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(0, 25, 0, 0);
  // エリアの背景色をダークグレーに設定する
  label9.setBackground(Color.darkGray);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(label9, gbc);
  // 容器にラベルを追加する
  contentPane.add(label9);
  
  /*
   * ウィンドウのソース部ファイルの格納フォルダを指定する部
   */
  // ソース詳細部:出力ソースのファイル03の格納フォルダ
  gbc.gridx = 6;
  gbc.gridy = 8;
  // 一行に85つセルを含める
  gbc.gridwidth = 85;
  // ヘッダー行にtextField6を追加し、表示される文字列を設定する
  textField6 = new JTextField("C:\\pleiades\\eclipse\\workspace\\nssol_tools\\output\\mapping");
  // テキストボックスの非活性化制御を設定する
  textField6.setEditable(false);
  // 表示される文字列のフォントを設定する
  textField6.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 2, 0, 0);
  // エリアの背景色をダークグレーに設定する
  textField6.setBackground(Color.ORANGE);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(textField6, gbc);
  // 容器にラベルを追加する
  contentPane.add(textField6);
  
  /*
   * ウィンドウのソース部ファイルの名称を指定する
   */
  // ソース詳細部:出力ファイル03のファイル名称を指定部
  gbc.gridx = 91;
  gbc.gridy = 8;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // ヘッダー行にbtn6を追加し、表示される文字列を設定する
  btn6 = new JButton("SelFile6");
  // ボタンに事件追加処理
  btn6.addActionListener(this);
  // 表示される文字列のフォントを設定する
  btn6.setFont(new Font("SansSerif", Font.PLAIN, 12));
  // エリアの背景色をダークグレーに設定する
  btn6.setBackground(Color.ORANGE);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn6, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn6);
  
  /*
   * 動作ボタンを作成する
   */
  // 入力詳細部:指定した入力資料によって、出力ファイルを作成するボタンを追加する
  gbc.gridx = 97;
  gbc.gridy = 6;
  // 一行に5つセルを含める
  gbc.gridwidth = 5;
  // 一列に2つセルを含める
  gbc.gridheight = 3;
  // ヘッダー行にbtn9を追加し、表示される文字列を設定する
  btn9 = new JButton("Source");
  // 表示される文字列のフォントを設定する
  btn9.setFont(new Font("SansSerif", Font.PLAIN, 15));
  // ボタンに事件追加処理
  btn9.addActionListener(this);
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 5, 0, 0);
  // エリアの背景色をダークグレーに設定する
  btn9.setBackground(Color.MAGENTA);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn9, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn9);
 }
 
 /**
  * アプリケーション終了処理ボタン
  *
  * @param contentPane           容器
  * @param layout                レイアウトモデル
  * @param gbc                   パラメータクラス
  */
 private void gridExitWindow(Container contentPane, GridBagLayout layout,
   GridBagConstraints gbc) {
  
  /*
   * 動作ボタンを作成する
   */
  // 入力詳細部:指定した入力資料によって、出力ファイルを作成するボタンを追加する
  gbc.gridx = 97;
  gbc.gridy = 9;
  // 一行に5つセルを含める
  gbc.gridwidth = 1;
  // 一列に2つセルを含める
  gbc.gridheight = 1;
  // ヘッダー行にbtn9を追加し、表示される文字列を設定する
  btn10 = new JButton("Exit");
  // 表示される文字列のフォントを設定する
  btn10.setFont(new Font("SansSerif", Font.PLAIN, 18));
  // ボタンに事件追加処理
  btn10.addActionListener(this);
  // レイアウトのパディングを設定する
  gbc.insets = new Insets(5, 5, 0, 0);
  // エリアの背景色をダークグレーに設定する
  btn10.setBackground(Color.GRAY);
  // レイアウトモデルにラベルを追加する
  layout.setConstraints(btn10, gbc);
  // 容器にラベルを追加する
  contentPane.add(btn10);
 }
 
 /**
  * ボタンに事件の追加処理
  */
 @Override
 public void actionPerformed(ActionEvent e) {
  
  try {
   // ファイル選択または保存ウィンドウを開くボタン数組みの初期化
   JButton[] btnArr = new JButton[] { btn1, btn2, btn3, btn4, btn5, btn6 };
   // ファイル選択ボタンに対応するテキストボックス数組みの初期化
   JTextField[] textFieldArr = new JTextField[] { textField1, textField2,
     textField3, textField4, textField5, textField6 };
   
   // ボタンをクリックするによって、相応処理を続く
   for (int i = 0; i < btnArr.length; i++) {
    
    if (btnArr[i] == e.getSource()) {
     // ファイル選択ウィンドウを開く
     Common.openWindow(btnArr[i], textFieldArr[i]);
     break;
    }
   }
   
   // exitボタンを押下したら、アプリケーションを終了する
   if (btn10 == e.getSource()) {
    
    // 処理終了
    System.exit(Constant.STATUS_EXIT);
   }
   
   // 読込後データリスト
   List<List<List<Object>>> dataList = null;
   // 入力情報Ⅰの選択した格納フォルダ
   folder1 = textField1.getText();
   // 入力情報Ⅱの選択した格納フォルダ
   folder2 = textField2.getText();
   // 新規情報の選択した保存フォルダ
   folder3 = textField3.getText();
   // 出力情報DTOの選択した格納フォルダ
   folder4 = textField4.getText();
   // 出力情報DAOの選択した格納フォルダ
   folder5 = textField5.getText();
   // 出力情報SQLの選択した格納フォルダ
   folder6 = textField6.getText();
   
   // 指定した入力フォルダに全てのExcelファイルを取得する
   if (btn8 == e.getSource() || btn9 == e.getSource()) {
    
    // 入力ファイルリスト
    List<File> fileList = null;
    
    dataList = new ArrayList<List<List<Object>>>();
    // ファイルリストの初期化
    fileList = new ArrayList<File>();
    // 入力ファイル1の読込
    if (!folder1.endsWith(Constant.FOLDER_END)) {
     
     // ファイルに
     fileList = Common.getFiles(folder1);
    }
    
    // 入力ファイルのデータ読込処理
    if (fileList != null && 0 < fileList.size()) {
     
     for (int i = 0;i < fileList.size();i++) {
      
      // 全てのファイル
      dataList.add(ReadExcelProcess.readExcel(fileList.get(i)));
     }
    }
   }
   
   // ファイルの初期化
   File file = null;
   
   // Source情報処理
   if (dataList != null && 0 < dataList.size()) {
    
    // モデルファイル出力
    if (e.getSource() == btn9) {
     
     ModelCreate.modelCreate(file, dataList, folder5);
    }
   }
  } catch (IOException e1) {

   e1.getMessage();
  } catch (ClassNotFoundException e1) {
   // 自動生成された catch ブロック
   e1.getMessage();
   
  } catch (InstantiationException e1) {
   // 自動生成された catch ブロック
  } catch (IllegalAccessException e1) {
   // 自動生成された catch ブロック
   e1.printStackTrace();
  } catch (UnsupportedLookAndFeelException e1) {
   // 自動生成された catch ブロック
   e1.printStackTrace();
  }
 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值