jtableheader.java
来自「linux下建立JAVA虚拟机的源码KAFFE」· Java 代码 · 共 775 行 · 第 1/2 页
JAVA
775 行
/** * Creates a default table column model. * * @return A default table column model. */ protected TableColumnModel createDefaultColumnModel() { return new DefaultTableColumnModel(); } /** * Get the value of the {@link #accessibleContext} property. * * @return The current value of the property */ public AccessibleContext getAccessibleContext() { return accessibleContext; } /** * Get the value of the {@link #columnModel} property. * * @return The current value of the property */ public TableColumnModel getColumnModel() { return columnModel; } /** * Get the column that is currently being dragged. This is used when * handling the column reordering with mouse. * * @return the column being dragged, null if none. */ public TableColumn getDraggedColumn() { return draggedColumn; } /** * Get the value of the {@link #draggedDistance} property. * * @return The current value of the property */ public int getDraggedDistance() { return draggedDistance; } /** * Check if it is possible to reorder the table columns by dragging column * header with mouse. The table reordering is enabled by default, but can be * disabled with {@link #setReorderingAllowed(boolean)}. * * @return true if reordering is allowed, false otherwise. */ public boolean getReorderingAllowed() { return reorderingAllowed; } /** * Check if it is possible to resize the table columns by dragging the column * boundary in the table header with mouse. The resizing is enabled * by default, but can be disabled with {@link #setResizingAllowed(boolean)}. * * @return true if resizing is allowed, false otherwise. */ public boolean getResizingAllowed() { return resizingAllowed; } /** * Get the column that is currently being resized. This is used when * handling the column resizing with mouse. * * @return the column being currently resized, null if none. */ public TableColumn getResizingColumn() { return resizingColumn; } /** * Get the table, having this header. * * @return the table, having this header. */ public JTable getTable() { return table; } /** * Get the value of the {@link #updateTableInRealTime} property. * * @return The current value of the property */ public boolean getUpdateTableInRealTime() { return updateTableInRealTime; } /** * Get the value of the {@link #opaque} property. * * @return The current value of the property */ public boolean isOpaque() { return opaque; } /** * Set the value of the {@link #columnModel} property. * * @param c The new value of the property */ public void setColumnModel(TableColumnModel c) { columnModel.removeColumnModelListener(this); columnModel = c; columnModel.addColumnModelListener(this); } /** * Set the column that is currently being dragged. This is used when * dragging the column with mouse. Setting to null will stop the * dragging session immediately. * * @param draggingIt the column being currently dragged, null if none. */ public void setDraggedColumn(TableColumn draggingIt) { draggedColumn = draggingIt; } /** * Set the value of the {@link #draggedDistance} property. * * @param d The new value of the property */ public void setDraggedDistance(int d) { draggedDistance = d; } /** * Set the value of the {@link #opaque} property. * * @param o The new value of the property */ public void setOpaque(boolean o) { opaque = o; } /** * Set the table ability to reorder columns by dragging column header * with mouse. The table reordering is enabled by default, but can be * disabled with this method. * * @param allowed true if reordering is allowed, false otherwise. */ public void setReorderingAllowed(boolean allowed) { reorderingAllowed = allowed; } /** * Set the table ability to resize columns by dragging the column * boundary in the table header with mouse. The resizing is enabled * by default, but can be disabled using this method. * * @param allowed true if resizing is allowed, false otherwise. */ public void setResizingAllowed(boolean allowed) { resizingAllowed = allowed; } /** * The the column that is currently being resized. This property is used * when handling table resizing with mouse. Setting to null would stop * the resizing session immediately. * * @param resizingIt the column being currently resized */ public void setResizingColumn(TableColumn resizingIt) { resizingColumn = resizingIt; } /** * Set the value of the {@link #table} property. * * @param t The new value of the property */ public void setTable(JTable t) { table = t; } /** * Set the value of the {@link #updateTableInRealTime} property. * * @param u The new value of the property */ public void setUpdateTableInRealTime(boolean u) { updateTableInRealTime = u; } /** * Creates a default renderer. * * @return A default renderer. */ protected TableCellRenderer createDefaultRenderer() { return new DefaultTableCellRenderer(); } /** * Returns the default table cell renderer. * * @return The default table cell renderer. */ public TableCellRenderer getDefaultRenderer() { return cellRenderer; } /** * Sets the default table cell renderer. * * @param cellRenderer the renderer. */ public void setDefaultRenderer(TableCellRenderer cellRenderer) { this.cellRenderer = cellRenderer; } /** * Get the rectangle, occupied by the header of the given column. * * @param column the column, for that the header area is requested. * * @return the column header area. */ public Rectangle getHeaderRect(int column) { Rectangle r = getTable().getCellRect(-1, column, false); r.height = getHeight(); return r; } protected String paramString() { return "JTableHeader"; } // UI support public String getUIClassID() { return "TableHeaderUI"; } public TableHeaderUI getUI() { return (TableHeaderUI) ui; } public void setUI(TableHeaderUI u) { super.setUI(u); } public void updateUI() { setUI((TableHeaderUI) UIManager.getUI(this)); } /** * Returns the index of the column at the specified point. * * @param point the point. * * @return The column index, or -1. */ public int columnAtPoint(Point point) { if (getBounds().contains(point)) return columnModel.getColumnIndexAtX(point.x); return -1; } /** * Receives notification when a column is added to the column model. * * @param event the table column model event */ public void columnAdded(TableColumnModelEvent event) { // TODO: What else to do here (if anything)? resizeAndRepaint(); } /** * Receives notification when a column margin changes in the column model. * * @param event the table column model event */ public void columnMarginChanged(ChangeEvent event) { // TODO: What else to do here (if anything)? resizeAndRepaint(); } /** * Receives notification when a column is moved within the column model. * * @param event the table column model event */ public void columnMoved(TableColumnModelEvent event) { // TODO: What else to do here (if anything)? resizeAndRepaint(); } /** * Receives notification when a column is removed from the column model. * * @param event the table column model event */ public void columnRemoved(TableColumnModelEvent event) { // TODO: What else to do here (if anything)? resizeAndRepaint(); } /** * Receives notification when the column selection has changed. * * @param event the table column model event */ public void columnSelectionChanged(ListSelectionEvent event) { // TODO: What else to do here (if anything)? resizeAndRepaint(); } /** * Validates the layout of this table header and repaints it. This is * equivalent to <code>revalidate()</code> followed by * <code>repaint()</code>. */ public void resizeAndRepaint() { revalidate(); repaint(); } /** * Initializes the fields and properties of this class with default values. * This is called by the constructors. */ protected void initializeLocalVars() { accessibleContext = new AccessibleJTableHeader(); draggedColumn = null; draggedDistance = 0; opaque = true; reorderingAllowed = true; resizingAllowed = true; resizingColumn = null; table = null; updateTableInRealTime = true; cellRenderer = createDefaultRenderer(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?