protected JTable createTable(final Transition transition) {
		TableModel model = createModel(transition);
		final TipLambdaCellRenderer[] renders = new TipLambdaCellRenderer[model
				.getColumnCount()];
		for (int i = 0; i < model.getColumnCount(); i++)
			renders[i] = new TipLambdaCellRenderer(model.getColumnName(i));
		JTable table = new JTable(createModel(transition)) {
			public TableCellRenderer getCellRenderer(int r, int c) {
				return renders[c];
			}

			protected boolean processKeyBinding(KeyStroke ks, KeyEvent e,
					int condition, boolean pressed) {
				if (ks.getKeyCode() == KeyEvent.VK_ENTER
						&& !ks.isOnKeyRelease()) {
					stopEditing(false);
					if (e.isShiftDown()) {
						createTransition(transition.getFromState(), transition
								.getToState());
					}
					return true;
				} else if (ks.getKeyCode() == KeyEvent.VK_ESCAPE) {
					stopEditing(true);
					return true;
				}
				return super.processKeyBinding(ks, e, condition, pressed);
			}
		};

		table.setGridColor(Color.gray);
		table.setBorder(new javax.swing.border.EtchedBorder());
		return table;
	}