@Override
	public void itemStateChanged(ItemEvent e) {
		selectConstructor = model.getConstructor(constList.getSelectedItem());
		selectedRawData = model.getRawData(constList.getSelectedItem());
		selectedStringModel = model.getStringTableModel(constList.getSelectedItem());
		selectedStringModel.addTableModelListener(new TableModelListener() {
			@Override
			public void tableChanged(TableModelEvent e) {
				String changeData = selectedStringModel.getValueAt(e.getLastRow(), e.getColumn()).toString();
				Object retObj = null;
				Class<?> cls = selectedRawData[e.getLastRow()].getRawClass();
				try {
					if (cls.isArray()) {
						retObj = holder.getObject(changeData);
						if (retObj != null) {
							;
						} else {
							retObj = Utilities.parse(cls, changeData);
						}
					} else {
						retObj = holder.getObject(changeData);
						if (retObj != null) {
							;
						} else {
							retObj = Utilities.parse(cls, changeData);
						}
					}
					selectedRawData[e.getLastRow()].setValue(retObj);
					System.out.println("正常に値がセットされました. Param = " + e.getLastRow() + ", Type = " + cls.getSimpleName() + ", Value = " + changeData);
				} catch  (RuntimeException err){
					err.printStackTrace();
					System.out.println("不正な値です. Param = " + e.getLastRow() + ", Type = " + cls.getSimpleName());
				} finally {
					;
				}
			}
		});
		tbl.setModel(selectedStringModel);
	}