⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 synthtableui.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        return rect;    }    private Rectangle getVDropLineRect(JTable.DropLocation loc) {        if (!loc.isInsertColumn()) {            return null;        }        boolean ltr = table.getComponentOrientation().isLeftToRight();        int col = loc.getColumn();        Rectangle rect = table.getCellRect(loc.getRow(), col, true);        if (col >= table.getColumnCount()) {            col--;            rect = table.getCellRect(loc.getRow(), col, true);            if (ltr) {                rect.x = rect.x + rect.width;            }        } else if (!ltr) {            rect.x = rect.x + rect.width;        }        if (rect.x == 0) {            rect.x = -1;        } else {            rect.x -= 2;        }                rect.width = 3;        return rect;    }    private Rectangle extendRect(Rectangle rect, boolean horizontal) {        if (rect == null) {            return rect;        }        if (horizontal) {            rect.x = 0;            rect.width = table.getWidth();        } else {            rect.y = 0;            if (table.getRowCount() != 0) {                Rectangle lastRect = table.getCellRect(table.getRowCount() - 1, 0, true);                rect.height = lastRect.y + lastRect.height;            } else {                rect.height = table.getHeight();            }        }        return rect;    }    /*     * Paints the grid lines within <I>aRect</I>, using the grid     * color set with <I>setGridColor</I>. Paints vertical lines     * if <code>getShowVerticalLines()</code> returns true and paints     * horizontal lines if <code>getShowHorizontalLines()</code>     * returns true.     */    private void paintGrid(SynthContext context, Graphics g, int rMin,                           int rMax, int cMin, int cMax) {        g.setColor(table.getGridColor());	Rectangle minCell = table.getCellRect(rMin, cMin, true);	Rectangle maxCell = table.getCellRect(rMax, cMax, true);        Rectangle damagedArea = minCell.union( maxCell );        SynthGraphicsUtils synthG = context.getStyle().getGraphicsUtils(                     context);        if (table.getShowHorizontalLines()) {	    int tableWidth = damagedArea.x + damagedArea.width;	    int y = damagedArea.y;	    for (int row = rMin; row <= rMax; row++) {		y += table.getRowHeight(row);                synthG.drawLine(context, "Table.grid",                                g, damagedArea.x, y - 1, tableWidth - 1,y - 1);	    }	}        if (table.getShowVerticalLines()) {	    TableColumnModel cm = table.getColumnModel();	    int tableHeight = damagedArea.y + damagedArea.height;	    int x;	    if (table.getComponentOrientation().isLeftToRight()) {		x = damagedArea.x;		for (int column = cMin; column <= cMax; column++) {		    int w = cm.getColumn(column).getWidth();		    x += w;                    synthG.drawLine(context, "Table.grid", g, x - 1, 0,                                    x - 1, tableHeight - 1);		}	    } else {                x = damagedArea.x;                for (int column = cMax; column >= cMin; column--) {                    int w = cm.getColumn(column).getWidth();                    x += w;                    synthG.drawLine(context, "Table.grid", g, x - 1, 0, x - 1,                                    tableHeight - 1);                }	    }	}    }    private int viewIndexForColumn(TableColumn aColumn) {        TableColumnModel cm = table.getColumnModel();        for (int column = 0; column < cm.getColumnCount(); column++) {            if (cm.getColumn(column) == aColumn) {                return column;            }        }        return -1;    }    private void paintCells(SynthContext context, Graphics g, int rMin,                            int rMax, int cMin, int cMax) {	JTableHeader header = table.getTableHeader();	TableColumn draggedColumn = (header == null) ? null : header.getDraggedColumn();	TableColumnModel cm = table.getColumnModel();	int columnMargin = cm.getColumnMargin();        Rectangle cellRect;	TableColumn aColumn;	int columnWidth;	if (table.getComponentOrientation().isLeftToRight()) {	    for(int row = rMin; row <= rMax; row++) {		cellRect = table.getCellRect(row, cMin, false);                for(int column = cMin; column <= cMax; column++) {                    aColumn = cm.getColumn(column);                    columnWidth = aColumn.getWidth();                    cellRect.width = columnWidth - columnMargin;                    if (aColumn != draggedColumn) {                        paintCell(context, g, cellRect, row, column);                    }                    cellRect.x += columnWidth;        	}	    }	} else {	    for(int row = rMin; row <= rMax; row++) {                cellRect = table.getCellRect(row, cMin, false);                aColumn = cm.getColumn(cMin);                if (aColumn != draggedColumn) {                    columnWidth = aColumn.getWidth();                    cellRect.width = columnWidth - columnMargin;                    paintCell(context, g, cellRect, row, cMin);                }                for(int column = cMin+1; column <= cMax; column++) {                    aColumn = cm.getColumn(column);                    columnWidth = aColumn.getWidth();                    cellRect.width = columnWidth - columnMargin;                    cellRect.x -= columnWidth;                    if (aColumn != draggedColumn) {                        paintCell(context, g, cellRect, row, column);                    }        	}	    }	}        // Paint the dragged column if we are dragging.        if (draggedColumn != null) {	    paintDraggedArea(context, g, rMin, rMax, draggedColumn, header.getDraggedDistance());	}	// Remove any renderers that may be left in the rendererPane.	rendererPane.removeAll();    }    private void paintDraggedArea(SynthContext context, Graphics g, int rMin, int rMax, TableColumn draggedColumn, int distance) {        int draggedColumnIndex = viewIndexForColumn(draggedColumn);        Rectangle minCell = table.getCellRect(rMin, draggedColumnIndex, true);	Rectangle maxCell = table.getCellRect(rMax, draggedColumnIndex, true);	Rectangle vacatedColumnRect = minCell.union(maxCell);	// Paint a gray well in place of the moving column.	g.setColor(table.getParent().getBackground());	g.fillRect(vacatedColumnRect.x, vacatedColumnRect.y,		   vacatedColumnRect.width, vacatedColumnRect.height);	// Move to the where the cell has been dragged.	vacatedColumnRect.x += distance;	// Fill the background.	g.setColor(context.getStyle().getColor(context, ColorType.BACKGROUND));	g.fillRect(vacatedColumnRect.x, vacatedColumnRect.y,		   vacatedColumnRect.width, vacatedColumnRect.height);        SynthGraphicsUtils synthG = context.getStyle().getGraphicsUtils(                                            context);        	// Paint the vertical grid lines if necessary.	if (table.getShowVerticalLines()) {	    g.setColor(table.getGridColor());	    int x1 = vacatedColumnRect.x;	    int y1 = vacatedColumnRect.y;	    int x2 = x1 + vacatedColumnRect.width - 1;	    int y2 = y1 + vacatedColumnRect.height - 1;	    // Left            synthG.drawLine(context, "Table.grid", g, x1-1, y1, x1-1, y2);	    // Right	    synthG.drawLine(context, "Table.grid", g, x2, y1, x2, y2);	}	for(int row = rMin; row <= rMax; row++) {	    // Render the cell value	    Rectangle r = table.getCellRect(row, draggedColumnIndex, false);	    r.x += distance;	    paintCell(context, g, r, row, draggedColumnIndex);	    // Paint the (lower) horizontal grid line if necessary.	    if (table.getShowHorizontalLines()) {		g.setColor(table.getGridColor());		Rectangle rcr = table.getCellRect(row, draggedColumnIndex, true);		rcr.x += distance;		int x1 = rcr.x;		int y1 = rcr.y;		int x2 = x1 + rcr.width - 1;		int y2 = y1 + rcr.height - 1;		synthG.drawLine(context, "Table.grid", g, x1, y2, x2, y2);	    }	}    }    private void paintCell(SynthContext context, Graphics g,            Rectangle cellRect, int row, int column) {        if (table.isEditing() && table.getEditingRow()==row &&                                 table.getEditingColumn()==column) {            Component component = table.getEditorComponent();            component.setBounds(cellRect);            component.validate();        }        else {            TableCellRenderer renderer = table.getCellRenderer(row, column);            Component component = table.prepareRenderer(renderer, row, column);            Color b = component.getBackground();            if ((b == null || b instanceof UIResource                    || component instanceof SynthBooleanTableCellRenderer)                    && !table.isCellSelected(row, column)) {                if (alternateColor != null && row % 2 == 0) {                    component.setBackground(alternateColor);                }            }            rendererPane.paintComponent(g, component, table, cellRect.x,                    cellRect.y, cellRect.width, cellRect.height, true);        }    }    public void propertyChange(PropertyChangeEvent event) {        if (SynthLookAndFeel.shouldUpdateStyle(event)) {            updateStyle((JTable)event.getSource());        }    }    private class SynthBooleanTableCellRenderer extends JCheckBox implements                      TableCellRenderer {        private boolean isRowSelected;                              public SynthBooleanTableCellRenderer() {            setHorizontalAlignment(JLabel.CENTER);            setName("Table.cellRenderer");        }        public Component getTableCellRendererComponent(                            JTable table, Object value, boolean isSelected,                            boolean hasFocus, int row, int column) {            isRowSelected = isSelected;                        if (isSelected) {                setForeground(unwrap(table.getSelectionForeground()));                setBackground(unwrap(table.getSelectionBackground()));            } else {                setForeground(unwrap(table.getForeground()));                setBackground(unwrap(table.getBackground()));            }                        setSelected((value != null && ((Boolean)value).booleanValue()));            return this;        }                private Color unwrap(Color c) {            if (c instanceof UIResource) {                return new Color(c.getRGB());            }            return c;        }                public boolean isOpaque() {            return isRowSelected ? true : super.isOpaque();        }    }    private class SynthTableCellRenderer extends DefaultTableCellRenderer {        private Object numberFormat;        private Object dateFormat;        private boolean opaque;        public void setOpaque(boolean isOpaque) {            opaque = isOpaque;        }        public boolean isOpaque() {            return opaque;        }        public String getName() {            String name = super.getName();            if (name == null) {                return "Table.cellRenderer";            }            return name;        }        public void setBorder(Border b) {            if (useUIBorder || b instanceof SynthBorder) {                super.setBorder(b);            }        }        public Component getTableCellRendererComponent(                  JTable table, Object value, boolean isSelected,                  boolean hasFocus, int row, int column) {            if (!useTableColors && (isSelected || hasFocus)) {                SynthLookAndFeel.setSelectedUI((SynthLabelUI)SynthLookAndFeel.                             getUIOfType(getUI(), SynthLabelUI.class),                                   isSelected, hasFocus, table.isEnabled(), false);            }            else {                SynthLookAndFeel.resetSelectedUI();            }            super.getTableCellRendererComponent(table, value, isSelected,                                                hasFocus, row, column);            setIcon(null);            Class columnClass = table.getColumnClass(column);            configureValue(value, columnClass);            return this;        }        private void configureValue(Object value, Class columnClass) {            if (columnClass == Object.class || columnClass == null) {                setHorizontalAlignment(JLabel.LEADING);            } else if (columnClass == Float.class || columnClass == Double.class) {                if (numberFormat == null) {                    numberFormat = NumberFormat.getInstance();                }                setHorizontalAlignment(JLabel.TRAILING);                setText((value == null) ? "" : ((NumberFormat)numberFormat).format(value));            }            else if (columnClass == Number.class) {                setHorizontalAlignment(JLabel.TRAILING);                // Super will have set value.            }            else if (columnClass == Icon.class || columnClass == ImageIcon.class) {                setHorizontalAlignment(JLabel.CENTER);                setIcon((value instanceof Icon) ? (Icon)value : null);                setText("");            }            else if (columnClass == Date.class) {                if (dateFormat == null) {                    dateFormat = DateFormat.getDateInstance();                }                setHorizontalAlignment(JLabel.LEADING);                setText((value == null) ? "" : ((Format)dateFormat).format(value));            }            else {                configureValue(value, columnClass.getSuperclass());            }        }        public void paint(Graphics g) {            super.paint(g);            SynthLookAndFeel.resetSelectedUI();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -