private void createWindow() {
		
		// ツールチップマネージャー設定
		ToolTipManager ttm = ToolTipManager.sharedInstance();
		ttm.setInitialDelay(50);
		ttm.setDismissDelay(8000);
		
		// Searchパネル
		JPanel mainPanel = new JPanel();
		mainPanel.setLayout(new BorderLayout());
		Border border = BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(),
				new EmptyBorder(1, 1, 1, 1));
		mainPanel.setBorder(border);
		
		// *********************************************************************
		// User File Queryタブ
		// *********************************************************************
		DefaultTableModel fileDm = new DefaultTableModel();
		fileSorter = new TableSorter(fileDm, TABLE_QUERY_FILE);
		queryFileTable = new JTable(fileSorter) {
			@Override
			public boolean isCellEditable(int row, int column) {
//				super.isCellEditable(row, column);
				// オーバーライドでセル編集を不可とする
				return false;
			}
		};
		queryFileTable.addMouseListener(new TblMouseListener());
		fileSorter.setTableHeader(queryFileTable.getTableHeader());
		queryFileTable.setRowSelectionAllowed(true);
		queryFileTable.setColumnSelectionAllowed(false);
		queryFileTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		
		String[] col = { COL_LABEL_NO, COL_LABEL_NAME, COL_LABEL_ID };
		((DefaultTableModel) fileSorter.getTableModel()).setColumnIdentifiers(col);
		(queryFileTable.getColumn(queryFileTable.getColumnName(0)))
				.setPreferredWidth(44);
		(queryFileTable.getColumn(queryFileTable.getColumnName(1)))
				.setPreferredWidth(LEFT_PANEL_WIDTH - 44);
		(queryFileTable.getColumn(queryFileTable.getColumnName(2)))
				.setPreferredWidth(70);
		
		ListSelectionModel lm = queryFileTable.getSelectionModel();
		lm.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		lm.addListSelectionListener(new LmFileListener());
		queryFilePane = new JScrollPane(queryFileTable);
		queryFilePane.addMouseListener(new PaneMouseListener());
		queryFilePane.setPreferredSize(new Dimension(300, 300));
		
		
		// *********************************************************************
		// Resultタブ
		// *********************************************************************
		DefaultTableModel resultDm = new DefaultTableModel();
		resultSorter = new TableSorter(resultDm, TABLE_RESULT);
		resultTable = new JTable(resultSorter) {
			@Override
			public String getToolTipText(MouseEvent me) {
//				super.getToolTipText(me);
				// オーバーライドでツールチップの文字列を返す
				Point pt = me.getPoint();
				int row = rowAtPoint(pt);
				if (row < 0) {
					return null;
				} else {
					int nameCol = getColumnModel().getColumnIndex(COL_LABEL_NAME);
					return " " + getValueAt(row, nameCol) + " ";
				}
			}
			@Override
			public boolean isCellEditable(int row, int column) {
//				super.isCellEditable(row, column);
				// オーバーライドでセル編集を不可とする
				return false;
			}
		};
		resultTable.addMouseListener(new TblMouseListener());
		resultSorter.setTableHeader(resultTable.getTableHeader());
		
		JPanel dbPanel = new JPanel();
		dbPanel.setLayout(new BorderLayout());
		resultPane = new JScrollPane(resultTable);
		resultPane.addMouseListener(new PaneMouseListener());
		
		resultTable.setRowSelectionAllowed(true);
		resultTable.setColumnSelectionAllowed(false);
		resultTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

		String[] col2 = { COL_LABEL_NAME, COL_LABEL_SCORE, COL_LABEL_HIT,
				COL_LABEL_ID, COL_LABEL_ION, COL_LABEL_CONTRIBUTOR, COL_LABEL_NO };

		resultDm.setColumnIdentifiers(col2);
		(resultTable.getColumn(resultTable.getColumnName(0)))
				.setPreferredWidth(LEFT_PANEL_WIDTH - 180);
		(resultTable.getColumn(resultTable.getColumnName(1))).setPreferredWidth(70);
		(resultTable.getColumn(resultTable.getColumnName(2))).setPreferredWidth(20);
		(resultTable.getColumn(resultTable.getColumnName(3))).setPreferredWidth(70);
		(resultTable.getColumn(resultTable.getColumnName(4))).setPreferredWidth(20);
		(resultTable.getColumn(resultTable.getColumnName(5))).setPreferredWidth(70);
		(resultTable.getColumn(resultTable.getColumnName(6))).setPreferredWidth(50);

		ListSelectionModel lm2 = resultTable.getSelectionModel();
		lm2.addListSelectionListener(new LmResultListener());
		
		resultPane.setPreferredSize(new Dimension(LEFT_PANEL_WIDTH, 200));
		dbPanel.add(resultPane, BorderLayout.CENTER);
		
		
		// *********************************************************************
		// DB Queryタブ
		// *********************************************************************
		DefaultTableModel dbDm = new DefaultTableModel();
		querySorter = new TableSorter(dbDm, TABLE_QUERY_DB);
		queryDbTable = new JTable(querySorter) {
			@Override
			public boolean isCellEditable(int row, int column) {
//				super.isCellEditable(row, column);
				// オーバーライドでセル編集を不可とする
				return false;
			}
		};
		queryDbTable.addMouseListener(new TblMouseListener());
		querySorter.setTableHeader(queryDbTable.getTableHeader());
		queryDbPane = new JScrollPane(queryDbTable);
		queryDbPane.addMouseListener(new PaneMouseListener());
		
		int h = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		queryDbPane.setPreferredSize(new Dimension(LEFT_PANEL_WIDTH, h));
		queryDbTable.setRowSelectionAllowed(true);
		queryDbTable.setColumnSelectionAllowed(false);
		queryDbTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

		String[] col3 = { COL_LABEL_ID, COL_LABEL_NAME, COL_LABEL_CONTRIBUTOR, COL_LABEL_NO };
		DefaultTableModel model = (DefaultTableModel) querySorter.getTableModel();
		model.setColumnIdentifiers(col3);

		// 列幅セット
		queryDbTable.getColumn(queryDbTable.getColumnName(0)).setPreferredWidth(70);
		queryDbTable.getColumn(queryDbTable.getColumnName(1)).setPreferredWidth(LEFT_PANEL_WIDTH - 70);
		queryDbTable.getColumn(queryDbTable.getColumnName(2)).setPreferredWidth(70);
		queryDbTable.getColumn(queryDbTable.getColumnName(3)).setPreferredWidth(50);

		ListSelectionModel lm3 = queryDbTable.getSelectionModel();
		lm3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		lm3.addListSelectionListener(new LmQueryDbListener());
		
		// ボタンパネル
		JPanel btnPanel = new JPanel();
		btnName.addActionListener(new BtnSearchNameListener());
		btnAll.addActionListener(new BtnAllListener());
		btnPanel.add(btnName);
		btnPanel.add(btnAll);
		
		parentPanel2 = new JPanel();
		parentPanel2.setLayout(new BoxLayout(parentPanel2, BoxLayout.PAGE_AXIS));
		parentPanel2.add(btnPanel);
		parentPanel2.add(queryDbPane);
		
		// オプションパネル
		JPanel dispModePanel = new JPanel();
		isDispSelected = dispSelected.isSelected();
		isDispRelated = dispRelated.isSelected();
		if (isDispSelected) {
			resultTable.getSelectionModel().setSelectionMode(
					ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
		}
		else if (isDispRelated) {
			resultTable.getSelectionModel().setSelectionMode(
					ListSelectionModel.SINGLE_SELECTION);
		}
		Object[] retRadio = new Object[]{dispSelected, dispRelated};
		for (int i=0; i<retRadio.length; i++) {
			((JRadioButton)retRadio[i]).addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					if (isDispSelected != dispSelected.isSelected()
							|| isDispRelated != dispRelated.isSelected()) {
						
						isDispSelected = dispSelected.isSelected();
						isDispRelated = dispRelated.isSelected();
						
						// 結果レコード選択状態を解除
						resultTable.clearSelection();
						resultPlot.clear();
						compPlot.setPeaks(null, 1);
						resultPlot.setPeaks(null, 0);
						setAllPlotAreaRange();
						pkgView.initResultRecInfo();
						
						if (isDispSelected) {
							resultTable.getSelectionModel().setSelectionMode(
									ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
						}
						else if (isDispRelated) {
							resultTable.getSelectionModel().setSelectionMode(
									ListSelectionModel.SINGLE_SELECTION);
						}
					}
				}
			});
		}
		ButtonGroup disGroup = new ButtonGroup();
		disGroup.add(dispSelected);
		disGroup.add(dispRelated);
		dispModePanel.add(lbl2);
		dispModePanel.add(dispSelected);
		dispModePanel.add(dispRelated);
		
		
		JPanel paramPanel = new JPanel();
		paramPanel.add(etcPropertyButton);
		etcPropertyButton.setMargin(new Insets(0, 10, 0, 10));
		etcPropertyButton.addActionListener(new ActionListener() {
			private ParameterSetWindow ps = null;
			public void actionPerformed(ActionEvent e) {
				// 子画面が開いていなければ生成
				if (!isSubWindow) {
					ps = new ParameterSetWindow(getParentFrame());
				} else {
					ps.requestFocus();
				}
			}
		});
		
		JPanel optionPanel = new JPanel();
		optionPanel.setLayout(new BoxLayout(optionPanel, BoxLayout.Y_AXIS));
		optionPanel.add(dispModePanel);
		optionPanel.add(paramPanel);
		
		// PackageView生成及び、初期化
		pkgView = new PackageViewPanel();
		pkgView.initAllRecInfo();
		
		queryTabPane.addTab("DB", parentPanel2);
		queryTabPane.setToolTipTextAt(TAB_ORDER_DB, "Query from DB.");
		queryTabPane.addTab("File", queryFilePane);
		queryTabPane.setToolTipTextAt(TAB_ORDER_FILE, "Query from user file.");
		queryTabPane.setSelectedIndex(TAB_ORDER_DB);
		queryTabPane.setFocusable(false);
		queryTabPane.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e) {

				// プロットペイン初期化
				queryPlot.clear();
				compPlot.clear();
				resultPlot.clear();
				queryPlot.setPeaks(null, 0);
				compPlot.setPeaks(null, 1);
				resultPlot.setPeaks(null, 0);

				// PackageView初期化
				pkgView.initAllRecInfo();
				
				// DB Hitタブ関連初期化
				if (resultTabPane.getTabCount() > 0) {
					resultTabPane.setSelectedIndex(0);
				}
				DefaultTableModel dataModel = (DefaultTableModel) resultSorter
						.getTableModel();
				dataModel.setRowCount(0);
				hitLabel.setText(" ");

				// DBタブ、User Fileタブの選択済みレコード反映処理
				queryTabPane.update(queryTabPane.getGraphics());
				if (queryTabPane.getSelectedIndex() == TAB_ORDER_DB) {
					parentPanel2.update(parentPanel2.getGraphics());
					updateSelectQueryTable(queryDbTable);
				} else if (queryTabPane.getSelectedIndex() == TAB_ORDER_FILE) {
					queryFilePane.update(queryFilePane.getGraphics());
					updateSelectQueryTable(queryFileTable);
				}
			}
		});
		
		
		// レイアウト		
		JPanel queryPanel = new JPanel();
		queryPanel.setLayout(new BorderLayout());
		queryPanel.add(queryTabPane, BorderLayout.CENTER);
		queryPanel.add(optionPanel, BorderLayout.SOUTH);
		queryPanel.setMinimumSize(new Dimension(0, 170));

		JPanel jtp2Panel = new JPanel();
		jtp2Panel.setLayout(new BorderLayout());
		jtp2Panel.add(dbPanel, BorderLayout.CENTER);
		jtp2Panel.add(hitLabel, BorderLayout.SOUTH);
		jtp2Panel.setMinimumSize(new Dimension(0, 70));
		Color colorGreen = new Color(0, 128, 0);
		hitLabel.setForeground(colorGreen);

		resultTabPane.addTab("Result", jtp2Panel);
		resultTabPane.setToolTipTextAt(TAB_RESULT_DB, "Result of DB hit.");
		resultTabPane.setFocusable(false);
		
		queryPlot.setMinimumSize(new Dimension(0, 100));
		compPlot.setMinimumSize(new Dimension(0, 120));
		resultPlot.setMinimumSize(new Dimension(0, 100));
		int height = initAppletHight / 3;
		JSplitPane jsp_cmp2db = new JSplitPane(JSplitPane.VERTICAL_SPLIT, compPlot, resultPlot);
		JSplitPane jsp_qry2cmp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, queryPlot,
				jsp_cmp2db);
		jsp_cmp2db.setDividerLocation(height);
		jsp_qry2cmp.setDividerLocation(height - 25);
		jsp_qry2cmp.setMinimumSize(new Dimension(190, 0));
		
		viewTabPane.addTab("Compare View", jsp_qry2cmp);
		viewTabPane.addTab("Package View", pkgView);
		viewTabPane.setToolTipTextAt(TAB_VIEW_COMPARE, "Comparison of query and result spectrum.");
		viewTabPane.setToolTipTextAt(TAB_VIEW_PACKAGE, "Package comparison of query and result spectrum.");
		viewTabPane.setSelectedIndex(TAB_VIEW_COMPARE);
		viewTabPane.setFocusable(false);
		
		JSplitPane jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, queryPanel,
				resultTabPane);
		jsp.setDividerLocation(310);
		jsp.setMinimumSize(new Dimension(180, 0));
		jsp.setOneTouchExpandable(true);
		
		JSplitPane jsp2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jsp,
				viewTabPane);
		int divideSize = (int)(initAppletWidth * 0.4);
		divideSize = (divideSize >= 180) ? divideSize : 180;
		jsp2.setDividerLocation(divideSize);
		jsp2.setOneTouchExpandable(true);
		
		mainPanel.add(jsp2, BorderLayout.CENTER);
		add(mainPanel);

		queryPlot.setSearchPage(this);
		compPlot.setSearchPage(this);
		resultPlot.setSearchPage(this);
		
	    setJMenuBar(MenuBarGenerator.generateMenuBar(this));
	}