2008-09-22 12 views
15

Estoy desarrollando una aplicación basada en la plataforma de cliente enriquecido de Eclipse que se basa en gran medida en el uso de tablas para mostrar y editar datos. Actualmente estoy usando las implementaciones SWT de Table y TableViewer.Una implementación más avanzada de tabla/hoja de cálculo SWT

Mis usuarios siempre se están quejando de que "no funciona como en Excel". En particular, no puedo seleccionar una sola celda dentro de una fila y todas las filas tienen la misma altura. Estoy buscando una implementación que aborde estos problemas.

Criterios:

  • libre (como en el discurso y la cerveza - Soy un estudiante de doctorado y el programa se EPL)
  • SWT (las diversas soluciones para la inclusión de oscilación en SWT aren' t muy agradable)

Editar:

Hasta ahora he lo siguiente sug rencias:

Por desgracia, una mirada superficial no proporciona información acerca de las diferencias entre estas implementaciones. Por supuesto, buscaré soluciones e informaré aquí, pero ¿tiene algún consejo sobre el tema?

Respuesta

5

Comprueba el componente Nebula Grid. Todavía se está desarrollando, por lo que no está 100% maduro, pero parece satisfacer tus necesidades.

2

KTable es maduro y muy personalizable. Lo usé para proporcionar una experiencia muy buena para mi aplicación SWT.

+1

Por lo que sé, KTable no se mantiene durante años ahora –

1

KTable es similar a JTable.

Nebula Grid encaja bien con el paradigma Widget + Viewer. Pude migrar de la tabla SWT normal a esto en cuestión de minutos.

2

NatTable se tendía a proporcionar un alto rendimiento y gran capacidad de volumen

2

He estado usando el componente Nebula Grid, como se mencionó anteriormente, en un proyecto en el trabajo, y en general tendría que decir que creo funciona bastante bien Hay algunos problemas de rendimiento, y aún no están terminados, pero es bastante fácil adoptar cualquier forma que se necesite y hace un buen trabajo con las tablas de datos de estilo de hoja de cálculo. Puede tener encabezados de columna y fila, grupos de columnas, representadores de celdas personalizados, etc.

Mi problema más reciente es que las alturas de línea se calculan correctamente, y no parece que haya mucho desarrollo activo sucediendo en este momento, por lo que intentaré solucionarlo yo mismo.

3

Creo que SWT Matrix tiene las características que estás buscando.

Tiene un diseño simétrico por lo que las filas y columnas tienen la misma representación, lo que significa que todas pueden ser seleccionadas, movidas, ocultas, redimensionadas, etc., como en excel. La navegación y la selección de celdas también son excelentes. Y todos los gestos de teclas y mouse están vinculados a las mismas acciones que en spreadshits.

El componente es de fuente cerrada pero gratuito para uso privado y no comercial. Aún la etapa alfa en este punto, sin embargo.

2

NatTable es gratis, rápido y potente.

Desde que se hizo esta pregunta por primera vez, se ha convertido en parte del proyecto Eclipse Nebula. El desarrollo aún está activo.

La API es enorme. Un gran conjunto de ejemplos proporciona un código de muestra simple para comenzar.

Algunas características interesantes:

  • puede manejar grandes conjuntos de datos sin problemas de rendimiento
  • Los encabezados de fila
  • abarcar celdas mesa
  • árbol
  • editores de celdas: texto, combinado, casilla
  • Acciones estándar para copiar, exportar a Excel e imprimir.
  • de validación y una indicación visual de valores no válidos
  • multi-celda de edición
  • decoradores celulares
  • mantener el estado de dimensionamiento columna, orden, ocultación, clasificación, etc.

Ejecutar los ejemplos para ver la velocidad y la potencia. Tenga en cuenta que debe agregar el plugin SWT a su classpath. Los ejemplos no lo incluyen. He aquí un ejemplo:

C:> java -cp C: \ eclipse \ plugins \ org.eclipse.swt.win32.win32.x86_ VERSIÓN .jar; org.eclipse NatTableExamples-0.9.0.jar .nebula.widgets.nattable.examples.NatTableExamples

[Gracias a los carteles de años anteriores por mencionar NatTable. Esta respuesta proporciona una actualización y más información.]

Cuestiones relacionadas