/* * [AppStateRenderer.java] * * Summary: Renders the icon for a state. * * Copyright: (c) 2009-2017 Roedy Green, Canadian Mind Products, http://mindprod.com * * Licence: This software may be copied and used freely for any purpose but military. * http://mindprod.com/contact/nonmil.html * * Requires: JDK 1.8+ * * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/ * * Version History: * 3.8 2009-03-31 change order of fields in defaults.csv. */ package com.mindprod.vercheck; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; import java.awt.Component; /** * Renders the icon for a state. * * @author Roedy Green, Canadian Mind Products * @version 3.8 2009-03-31 change order of fields in defaults.csv. * @since 2009 */ final class AppStateRenderer extends DefaultTableCellRenderer implements TableCellRenderer { /** * constructor */ public AppStateRenderer() { } /** * Prepare a JLabel with the relevant icon in it. * * @param table the JTable * @param value the ImageIcon to display * @param isSelected true if this cell is selected. * @param hasFocus true if this cell has focus * @param row 0-based row * @param column 0-based column * * @return JLabel with an Icon in it. */ public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column ) { JLabel template = ( JLabel ) super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column ); template.setHorizontalAlignment( JLabel.CENTER ); template.setText( "" ); template.setIcon( ( ImageIcon ) value ); // we don't handle choosing the selected background. // JTable uses the selected or normal background. If we set we override, and don't // notice selections fast enough. return template; } }