protected void paintGrid(Graphics g, int rowMin, int rowMax, int colMin, int colMax) { if (!grid.getShowGrid()) { return; // do nothing } int y1 = grid.getRowPosition(rowMin); int y2 = grid.getRowPosition(rowMax) + grid.getRowHeight(rowMax); int x1 = grid.getColumnPosition(colMin); int x2 = grid.getColumnPosition(colMax) + grid.getColumnWidth(colMax); g.setColor(grid.getGridColor()); // Draw the horizontal lines for (int row = rowMin; row <= rowMax; row++) { int rowY = grid.getRowPosition(row); g.drawLine(x1, rowY, x2, rowY); } g.drawLine(x1, y2, x2, y2); // Draw the vertical gridlines for (int col = colMin; col <= colMax; col++) { int colX = grid.getColumnPosition(col); g.drawLine(colX, y1, colX, y2); } g.drawLine(x2, y1, x2, y2); }
protected void installDefaults() { Color defaultGridColor = UIManager.getColor("Table.gridColor"); Color defaultForegroundColor = UIManager.getColor("Table.foreground"); Color defaultBackgroundColor = UIManager.getColor("Table.background"); Border defaultBorder = UIManager.getBorder("Table.scrollPaneBorder"); Color defaultSelectionForeground = UIManager.getColor("Table.selectionForeground"); Color defaultSelectionBackground = UIManager.getColor("Table.selectionBackground"); Color defaultFocusCellForeground = UIManager.getColor("Table.focusCellForeground"); Color defaultFocusCellBackground = new Color(153, 153, 204); Font defaultFont = UIManager.getFont("Table.font"); Border defaultGridBorder = UIManager.getBorder("Table.border"); InputMap inputMap = (InputMap) UIManager.get("Table.ancestorInputMap"); if (!installed) { UIManager.getDefaults().put("Grid.gridColor", defaultGridColor); UIManager.getDefaults().put("Grid.foreground", defaultForegroundColor); UIManager.getDefaults().put("Grid.background", defaultBackgroundColor); UIManager.getDefaults().put("Grid.selectionForegroundColor", defaultSelectionForeground); UIManager.getDefaults().put("Grid.selectionBackgroundColor", defaultSelectionBackground); UIManager.getDefaults().put("Grid.focusForegroundColor", defaultFocusCellForeground); UIManager.getDefaults().put("Grid.focusBackgroundColor", defaultFocusCellBackground); UIManager.getDefaults().put("Grid.border", defaultGridBorder); UIManager.getDefaults().put("Grid.font", defaultFont); UIManager.getDefaults().put("Grid.scrollPaneBorder", defaultBorder); UIManager.getDefaults().put("Grid.ancestorInputMap", inputMap); installed = true; } Color foregroundColor = grid.getForeground(); Color backgroundColor = grid.getBackground(); Font font = grid.getFont(); Border border = grid.getBorder(); Color gridColor = grid.getGridColor(); Color selectionForeground = grid.getSelectionForegroundColor(); Color selectionBackground = grid.getSelectionBackgroundColor(); Color focusForeground = grid.getFocusForegroundColor(); Color focusBackground = grid.getFocusBackgroundColor(); if (foregroundColor == null || foregroundColor instanceof UIResource) grid.setForeground(defaultForegroundColor); if (backgroundColor == null || backgroundColor instanceof UIResource) grid.setBackground(defaultBackgroundColor); if (font == null || font instanceof UIResource) grid.setFont(defaultFont); if (gridColor == null || gridColor instanceof UIResource) grid.setGridColor(defaultGridColor); if (border == null || border instanceof UIResource) grid.setBorder(defaultGridBorder); if (selectionForeground == null || selectionForeground instanceof UIResource) grid.setSelectionForegroundColor(defaultSelectionForeground); if (selectionBackground == null || selectionBackground instanceof UIResource) grid.setSelectionBackgroundColor(defaultSelectionBackground); if (focusForeground == null || focusForeground instanceof UIResource) grid.setFocusForegroundColor(defaultFocusCellForeground); if (focusBackground == null || focusBackground instanceof UIResource) grid.setFocusBackgroundColor(defaultFocusCellBackground); }
/** special paint handler for merged cell regions */ protected void paintSpans(Graphics g, int rowMin, int rowMax, int colMin, int colMax) { Rectangle clip = g.getClipBounds(); Iterator cell = grid.getSpanModel().getSpanIterator(); while (cell.hasNext()) { CellSpan span = (CellSpan) cell.next(); Rectangle cellBounds = grid.getCellBounds(span.getRow(), span.getColumn()); // Only paint cell if visible if (span.getLastRow() >= rowMin && span.getLastColumn() >= colMin && span.getFirstRow() <= rowMax && span.getFirstColumn() <= colMax) { paintCell(g, cellBounds, span.getRow(), span.getColumn()); // Paint grid line around cell if (grid.getShowGrid()) { g.setColor(grid.getGridColor()); g.drawRect(cellBounds.x, cellBounds.y, cellBounds.width, cellBounds.height); } } } }