tecgraf.javautils.gui.table
Class SortableTable

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTable
                  extended by tecgraf.javautils.gui.table.SortableTable
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable, SortableTableListener

public class SortableTable
extends JTable
implements SortableTableListener

Esta classe representa uma tabela com linhas ordenadas, que pode ser reordenada clicando-se no cabeçalho de cada uma de suas colunas.
A tabela exibirá um ícone de seta, indicando o sentido da ordenação, no cabeçalho da coluna que estiver servindo de base para a ordenação. Clicando na mesma coluna, a ordenação será invertida. Clicando em outra, esta passará a ser base para uma nova ordenação, em sentido crescente.

O método setNoSortStateEnabled(boolean) oferece uma terceira possibilidade: se essa opção estiver habilitada, quando o usuário tentar reordenar uma coluna atualmente em sentido decrescente, ao invés de passar para o sentido crescente, está perderá a ordenação, até a próxima solicitação de ordenação. Isto é, ao invés do ciclo binário "crescente-decrescente", acrescenta-se um terceiro estado, gerando um ciclo "crescente-decrescente-não ordenado". Esta opção foi criada para casos em que o custo de ordenação era considerado muito alto em razão do número de linhas a serem ordenadas, prejudicando o desempenho.

Se o seu objetivo é apenas instanciar uma SortableTable para mostrar objetos, dê uma olhada na classe ObjectTableBuilder que foi feita para facilitar este trabalho.

See Also:
SortableTableSample, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTable
JTable.AccessibleJTable, JTable.DropLocation, JTable.PrintMode
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JTable
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SortableTable()
           Constrói uma instância da classe, sem especificar o modelo.
SortableTable(boolean enableSort)
           Constrói uma instância da classe, sem especificar o modelo.
SortableTable(TableModel model)
          Constrói uma instância da classe.
SortableTable(TableModel model, boolean enableSort)
          Constrói uma instância da classe.
SortableTable(TableModel model, boolean enableSort, TecTableRowSorter<TableModel> sorter)
          Constrói uma instância da classe.
SortableTable(TableModel model, boolean enableSort, TecTableRowSorter<TableModel> sorter, boolean useDisabledLook)
          Constrói uma instância da classe.
 
Method Summary
 void addSortableTableListener(SortableTableListener l)
          Adiciona um objeto à lista de listeners, sendo notificado sempre que um evento para o qual ele está registrado ocorrer.
 void adjustColumnWidth()
           Ajusta a largura de todas as colunas da tabela, buscando a menor largura que seja suficiente para exibição do conteúdo.
 void adjustColumnWidth(int[] columnIndexes)
           Ajusta a largura de todas as colunas da tabela, buscando a menor largura que seja suficiente para exibição do conteúdo.
 void adjustRowHeight()
          Ajusta a altura de todas as linhas da tabela, buscando a menor altura suficiente para exibição do conteúdo.
 void adjustSize()
          Ajusta as dimensões da tabela, buscando a menor altura para cada linha e a menor largura para cada coluna suficiente para exibição do seu conteúdo.
 int convertRowIndexToModel(int viewRowIndex)
          Obtém o índice da linha no modelo a partir do índice da linha da visão (tabela).
 int convertRowIndexToView(int modelRowIndex)
          Obtém o índice da linha na visão a partir do índice da linha do modelo (tabela).
 JPanel createSearchPanel(String title, String ignoreCaseLabelText, String previousToolTipText, String nextToolTipText, int paddingSize)
          Cria um painel de busca por palavra em uma coluna da tabela.
 JPanel createSearchPanel(String title, String ignoreCaseLabelText, String previousToolTipText, String nextToolTipText, int paddingSize, boolean inLine)
          Cria um painel de busca por palavra em uma coluna da tabela.
 void doLayout()
           Sobrescreve o doLayout da JTable para executar eventuais ajustes de largura das colunas que tenham ficado pendentes.
 TableCellRenderer getCellRenderer(int row, int column)
          Retorna o renderizador adequado para a célula especificada.
 Comparator<?> getComparator(int colIndex)
          Retorna o comparador para a coluna especificada (se houver).
 SortOrder getCurrentSortOrder()
          Retorna o sentido atual de ordenação.
 boolean getNoSortStateEnabled()
          Indica se o estado "não-ordenado" está ou não habilitado.
protected  int getPreferredCellHeight(int viewRowIndex)
          Obtém a altura preferida para as células de uma linha, buscando a menor largura suficiente para exibição do conteúdo de todas as linhas daquela linha.
protected  int getPreferredCellWidth(int viewColIndex)
          Obtém a largura preferida para as células de uma coluna, buscando a menor largura suficiente para exibição do conteúdo de todas as linhas daquela coluna.
protected  int getPreferredHeaderWidth(TableColumn column, int viewColIndex)
          Obtém a largura preferida para o cabeçalho da coluna especificada.
 int getSortedColIndexView()
          Obtém o índice da coluna (na visão) que está atualmente servindo de base para a ordenação.
 boolean getToolTipEnabled()
          Indica se o tooltip para exibição de conteúdo das células está ou não habilitado.
 void removeSortableTableListener(SortableTableListener l)
          Remove um objeto da lista de listeners.
 void setComparator(int colIndex, Comparator<?> comparator)
          Permite que determinada coluna seja ordenada de forma personalizada.
 void setComparators(Comparator<?>[] comparators)
          Permite que todas as colunas sejam ordenadas de forma personalizada.
 void setModel(TableModel dataModel)
          Substitui o modelo, reaplicando o ordenador.
 void setNoSortStateEnabled(boolean enable)
          Habilita / desabilita o estado "não-ordenado" da tabela.
protected  void setPreferredColumnWidthToFit()
           Ajusta a largura preferencial de todas as colunas da tabela, buscando a menor largura que seja suficiente para exibição do conteúdo.
protected  void setRemainingSpaceToColumns(int[] columnIndexes)
           Ajusta a largura das colunas especificadas para preencher o espaço restante na largura da tabela, se houver, durante um ajuste de colunas.
 void setRowFilter(RowFilter<? super TableModel,? super Integer> filter)
          Associa um filtro de linha a tabela.
 void setRowSorter(RowSorter<? extends TableModel> sorter)
          Substitui o ordenador/filtrador atual.
 void setSortable(int columnIndex, boolean sortable)
          Define se determinada coluna do modelo é ou não ordenável.
 void setToolTipEnabled(boolean enabled)
          Habilita/desabilita o tooltip para exibição de conteúdo das células, útil no caso de células que estejam em colunas muito estreitas.
 void setUseDisabledLook(boolean useDisabledLook)
          Define como deve ser a aparência da tabela desabilitada.
 void sort()
          Ordena a tabela pela primeira coluna, em sentido crescente.
 void sort(int initialBaseColumnIndex, SortOrder initialSortOrder)
          Ordena a tabela por determinada coluna, em determinado sentido.
 void sort(RowSorter.SortKey... sortKeys)
          Ordena a tabela por quaisquer colunas e sentidos, na sequencia determinada pelos parâmetros.
 void sorterChanged(RowSorterEvent e)
          
 void tableSorted(Object source)
          Notifica o ouvinte que a tabela foi (re)ordenada.
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getModel, getPreferredScrollableViewportSize, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getToolTipText, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, print, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoCreateRowSorter, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setFillsViewportHeight, setGridColor, setIntercellSpacing, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, tableChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SortableTable

public SortableTable()

Constrói uma instância da classe, sem especificar o modelo.


SortableTable

public SortableTable(boolean enableSort)

Constrói uma instância da classe, sem especificar o modelo.

Parameters:
enableSort - indica se a ordenação está ativa (true) ou não (false).


SortableTable

public SortableTable(TableModel model)
Constrói uma instância da classe.

Parameters:
model - modelo para essa tabela (se for passado null, será criado um DefaultTableModel).

SortableTable

public SortableTable(TableModel model,
                     boolean enableSort)
Constrói uma instância da classe.

Parameters:
model - modelo para essa tabela (se for passado null, será criado um DefaultTableModel).
enableSort - indica se a ordenação está ativa (true) ou não (false).

SortableTable

public SortableTable(TableModel model,
                     boolean enableSort,
                     TecTableRowSorter<TableModel> sorter,
                     boolean useDisabledLook)
Constrói uma instância da classe.

Parameters:
model - modelo para essa tabela (se for passado null, será criado um DefaultTableModel).
enableSort - indica se a ordenação está ativa (true) ou não (false).
sorter - ordenador. Permite realizar ordenações diferentes da padrão.
useDisabledLook - - se igual a true, os componentes das células serão desabilitados quando a tabela estiver desabilitada, dando à mesma a real aparência de desabilitada. Caso contrário, a tabela terá o comportamento default para estes casos (as células têm aparência normal mas não são interativas)

SortableTable

public SortableTable(TableModel model,
                     boolean enableSort,
                     TecTableRowSorter<TableModel> sorter)
Constrói uma instância da classe.

Parameters:
model - modelo para essa tabela (se for passado null, será criado um DefaultTableModel).
enableSort - indica se a ordenação está ativa (true) ou não (false).
sorter - ordenador. Permite realizar ordenações diferentes da padrão.
Method Detail

setModel

public void setModel(TableModel dataModel)
Substitui o modelo, reaplicando o ordenador.

Overrides:
setModel in class JTable
Parameters:
dataModel - novo modelo.

setRowFilter

public void setRowFilter(RowFilter<? super TableModel,? super Integer> filter)
Associa um filtro de linha a tabela.

Parameters:
filter - um critério para filtrar as linhas da tabela

setToolTipEnabled

public final void setToolTipEnabled(boolean enabled)
Habilita/desabilita o tooltip para exibição de conteúdo das células, útil no caso de células que estejam em colunas muito estreitas.

Parameters:
enabled - se true, habilita o tooltip; se false, desativa.

getToolTipEnabled

public final boolean getToolTipEnabled()
Indica se o tooltip para exibição de conteúdo das células está ou não habilitado.

Returns:
true se o tooltip estiver habilitado, false caso contrário.

adjustRowHeight

public void adjustRowHeight()
Ajusta a altura de todas as linhas da tabela, buscando a menor altura suficiente para exibição do conteúdo.


getPreferredCellHeight

protected int getPreferredCellHeight(int viewRowIndex)
Obtém a altura preferida para as células de uma linha, buscando a menor largura suficiente para exibição do conteúdo de todas as linhas daquela linha.

Parameters:
viewRowIndex - índice da linha na tabela.
Returns:
altura em pixels mínima para essa linha, suficiente para exibição do seu conteúdo.

adjustColumnWidth

public void adjustColumnWidth()

Ajusta a largura de todas as colunas da tabela, buscando a menor largura que seja suficiente para exibição do conteúdo. Eventuais espaços restantes serão distribuídos igualmente entre todas as colunas.

A operação de ajuste pode não ser efetuada exatamente no momento da chamada do método, mas sim postergada para um momento mais adequado. Isto ocorre devido à possibilidade do método ser invocado antes da tabela ter configurado suas dimensões finais, o que acontece somente após ter sido executado um pack ou setVisible em seu Container.

Como o cálculo da largura das colunas depende da largura da tabela, caso este método tenha sido invocado antes da tabela ter configurado a sua largura final, a execução é postergada até o momento em que o método doLayout() é chamado, pois somente nesse ponto ter-se-á certeza de que a tabela já terá suas dimensões finais.

See Also:
doLayout()

adjustColumnWidth

public void adjustColumnWidth(int[] columnIndexes)

Ajusta a largura de todas as colunas da tabela, buscando a menor largura que seja suficiente para exibição do conteúdo. Eventuais espaços restantes serão distribuídos igualmente entre as colunas especificadas.

Esse método pode não executar no momento exato em que é chamado. Maiores detalhes, veja adjustColumnWidth().

Parameters:
columnIndexes - índices das colunas que repartirão o espaço restante.

doLayout

public void doLayout()

Sobrescreve o doLayout da JTable para executar eventuais ajustes de largura das colunas que tenham ficado pendentes. Isto é necessário caso o método de ajuste tenha sido chamado antes da largura final da tabela ter sido calculada, o que invalidaria o resultado do método. Quando este método é invocado, a tabela já tem suas dimensões finais, o que justifica sua escolha como ponto de execução adequado para o método de ajuste.

O redesenho da tabela é feito conforme descrito no método JTable.doLayout().

Overrides:
doLayout in class JTable

setPreferredColumnWidthToFit

protected void setPreferredColumnWidthToFit()

Ajusta a largura preferencial de todas as colunas da tabela, buscando a menor largura que seja suficiente para exibição do conteúdo.


getPreferredHeaderWidth

protected int getPreferredHeaderWidth(TableColumn column,
                                      int viewColIndex)
Obtém a largura preferida para o cabeçalho da coluna especificada.

Parameters:
column - referência para a coluna.
viewColIndex - índice da coluna na tabela.
Returns:
largura em pixels mínima para esse cabeçalho, suficiente para exibição do seu conteúdo.

getPreferredCellWidth

protected int getPreferredCellWidth(int viewColIndex)
Obtém a largura preferida para as células de uma coluna, buscando a menor largura suficiente para exibição do conteúdo de todas as linhas daquela coluna.

Parameters:
viewColIndex - índice da coluna na tabela.
Returns:
largura em pixels mínima para essa coluna, suficiente para exibição do seu conteúdo.

setRemainingSpaceToColumns

protected void setRemainingSpaceToColumns(int[] columnIndexes)

Ajusta a largura das colunas especificadas para preencher o espaço restante na largura da tabela, se houver, durante um ajuste de colunas. O espaço restante será distribuído igualmente entre as colunas especificadas (na prática, isso não é sempre possível, devido ao fato de estar-se lidando com valores inteiros. Sobras da divisão são redistribuídas entre as primeiras colunas).

Se ocorrer a condição oposta, isto é, se o espaço da tabela não for suficiente para a exibição de todas as colunas, o comportamento padrão da JTable, de distribuição do delta negativo entre TODAS as colunas, será mantido.

Parameters:
columnIndexes - índices das colunas que receberão o espaço adicional (se houver).

adjustSize

public void adjustSize()
Ajusta as dimensões da tabela, buscando a menor altura para cada linha e a menor largura para cada coluna suficiente para exibição do seu conteúdo.


sort

public void sort()
Ordena a tabela pela primeira coluna, em sentido crescente.


sort

public void sort(int initialBaseColumnIndex,
                 SortOrder initialSortOrder)
Ordena a tabela por determinada coluna, em determinado sentido.

Parameters:
initialBaseColumnIndex - coluna a servir de base para a ordenação (0-based).
initialSortOrder - sentido da ordenação.

sort

public void sort(RowSorter.SortKey... sortKeys)
Ordena a tabela por quaisquer colunas e sentidos, na sequencia determinada pelos parâmetros. Os parâmetros consistem em uma lista de qualquer tamanho de RowSorter.SortKey, classe que representa um par (<índice da coluna>,), iniciando da coluna 0 (0-based). Se o primeiro par (coluna,sentido) for (2,ASCENDING) e o segundo (0, DESCENDING), a tabela será primeiro ordenada pela terceira coluna em sentido crescente, e a seguir pela primeira coluna em sentido decrescente.

Parameters:
sortKeys - lista de pares (<índice da coluna>,).

getComparator

public Comparator<?> getComparator(int colIndex)
Retorna o comparador para a coluna especificada (se houver). Caso contrário, retorna nulo.

Parameters:
colIndex - índice da coluna para o qual se deseja o comparador.
Returns:
comparador.

setComparator

public void setComparator(int colIndex,
                          Comparator<?> comparator)
Permite que determinada coluna seja ordenada de forma personalizada. ATENÇÃO: Este método não dispara uma ordenação. Se for desejada uma reordenação, deve ser invocado posteriormente o método sort() ou suas variantes.

Parameters:
colIndex - índice da coluna no modelo.
comparator - comparador a ser usado para ordenação da coluna.

setComparators

public void setComparators(Comparator<?>[] comparators)
Permite que todas as colunas sejam ordenadas de forma personalizada. ATENÇÃO: Este método não dispara uma ordenação. Se for desejada uma reordenação, deve ser invocado posteriormente o método sort() ou suas variantes.

Parameters:
comparators - array de comparadores, a serem atribuídos na mesma ordem às colunas do modelo.

getSortedColIndexView

public int getSortedColIndexView()
Obtém o índice da coluna (na visão) que está atualmente servindo de base para a ordenação.

Returns:
índice da coluna-base para a ordenação ou -1 se a tabela não estiver ordenada.

getCurrentSortOrder

public SortOrder getCurrentSortOrder()
Retorna o sentido atual de ordenação.

Returns:
sentido atual de ordenação.
See Also:
SortOrder

getCellRenderer

public TableCellRenderer getCellRenderer(int row,
                                         int column)
Retorna o renderizador adequado para a célula especificada. Garante que, no caso do modelo ser um FooterModelWrapper, os renderizadores originais para cada tipo de célula serão "decorados" por um FooterRendererWrapper, o qual tem o papel de extrair o valor das células "marcadas" (encapsuladas por uma classe indicando tratar-se de célula de totalização) para permitir sua correta exibição.

Overrides:
getCellRenderer in class JTable
Parameters:
row - índice da linha da célula
column - índice da coluna da célula
Returns:
renderizador adequado para a célula.

getNoSortStateEnabled

public boolean getNoSortStateEnabled()
Indica se o estado "não-ordenado" está ou não habilitado.

Returns:
true se o estado "não-ordenado" for permitido, false caso contrário.

setNoSortStateEnabled

public void setNoSortStateEnabled(boolean enable)
Habilita / desabilita o estado "não-ordenado" da tabela.

Parameters:
enable - se true, habilita; false caso contrário.

setRowSorter

public void setRowSorter(RowSorter<? extends TableModel> sorter)
Substitui o ordenador/filtrador atual. Habilita / desabilita no novo filtrador o estado "não-ordenado", dependendo do estado atual deste objeto.

Overrides:
setRowSorter in class JTable

convertRowIndexToModel

public int convertRowIndexToModel(int viewRowIndex)
Obtém o índice da linha no modelo a partir do índice da linha da visão (tabela).

Overrides:
convertRowIndexToModel in class JTable
Parameters:
viewRowIndex - índice de linha na visão (tabela).
Returns:
índice da linha no modelo. Retorna -1 se a linha especificada estiver fora dos limites do modelo, ou se o modelo atual for nulo.

convertRowIndexToView

public int convertRowIndexToView(int modelRowIndex)
Obtém o índice da linha na visão a partir do índice da linha do modelo (tabela).

Overrides:
convertRowIndexToView in class JTable
Parameters:
modelRowIndex - índice de linha no modelo (tabela).
Returns:
índice da linha na visão. Retorna -1 se a linha especificada estiver fora dos limites do modelo, ou se o modelo atual for nulo.

setSortable

public void setSortable(int columnIndex,
                        boolean sortable)
Define se determinada coluna do modelo é ou não ordenável. Todas as colunas do modelo são ordenáveis por default, se a tabela for ordenável. Este método permite desabilitar a ordenação em uma coluna específica.

Parameters:
columnIndex - índice da coluna no modelo.
sortable - indica se a coluna deve ser ordenável (true) ou não (false).
Throws:
IndexOutOfBoundsException - se a coluna estiver fora dos limites do modelo.

setUseDisabledLook

public void setUseDisabledLook(boolean useDisabledLook)
Define como deve ser a aparência da tabela desabilitada.

Parameters:
useDisabledLook - - se igual a true, os componentes das células serão desabilitados quando a tabela estiver desabilitada, dando à mesma a real aparência de desabilitada. Caso contrário, a tabela terá o comportamento default para estes casos (as células têm aparência normal mas não são interativas)

addSortableTableListener

public void addSortableTableListener(SortableTableListener l)
Adiciona um objeto à lista de listeners, sendo notificado sempre que um evento para o qual ele está registrado ocorrer.

Parameters:
l - o listener (ouvinte).

removeSortableTableListener

public void removeSortableTableListener(SortableTableListener l)
Remove um objeto da lista de listeners.

Parameters:
l - o listener (ouvinte).

sorterChanged

public void sorterChanged(RowSorterEvent e)

Specified by:
sorterChanged in interface RowSorterListener
Overrides:
sorterChanged in class JTable

tableSorted

public void tableSorted(Object source)
Notifica o ouvinte que a tabela foi (re)ordenada.

Specified by:
tableSorted in interface SortableTableListener
Parameters:
source - objeto que originou o evento.

createSearchPanel

public JPanel createSearchPanel(String title,
                                String ignoreCaseLabelText,
                                String previousToolTipText,
                                String nextToolTipText,
                                int paddingSize,
                                boolean inLine)
Cria um painel de busca por palavra em uma coluna da tabela.

Parameters:
title - titulo do painel.
ignoreCaseLabelText - texto do checkbox usado para ignorar maiúsculas e minúsculas.
previousToolTipText - texto do tootip do butão de prévio.
nextToolTipText - texto do tootip do butão de próximo.
paddingSize - espaçamento entre os componentes.
inLine - true para a criação de um painel sem borda e com o título alinhado com a caixa de texto e os botões.
Returns:
um painel com uma caixa de texto onde será digitada a palavra a ser buscada, dois butões para navegar entre os resultados e um checkbox que habilita ou desabilita se a busca será sensível a letras maiúsculas e minúsculas.

createSearchPanel

public JPanel createSearchPanel(String title,
                                String ignoreCaseLabelText,
                                String previousToolTipText,
                                String nextToolTipText,
                                int paddingSize)
Cria um painel de busca por palavra em uma coluna da tabela.

Parameters:
title - titulo do painel.
ignoreCaseLabelText - texto do checkbox usado para ignorar maiúsculas e minúsculas.
previousToolTipText - texto do tootip do butão de prévio.
nextToolTipText - texto do tootip do butão de próximo.
paddingSize - espaçamento entre os componentes.
Returns:
um painel com uma caixa de texto onde será digitada a palavra a ser buscada, dois butões para navegar entre os resultados e um checkbox que habilita ou desabilita se a busca será sensível a letras maiúsculas e minúsculas.


Copyright © 2014 Tecgraf/PUC-Rio. All rights reserved.