🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.jbuilder.java.swing
Article #12864

Changing cell foreground after edit

#12864
From: Ronald Mazyck
Date: Tue, 27 Oct 1998 00:00
74 lines
3152 bytes
I  want to change the foreground of the cellRenderer when the data in
the cell has been chaged.  I subclassed the JTable and  overwrote
several methods. Can some tell me what I am missing.

    public TableCellRenderer getCellRenderer(int row, int column)
    {
        TableColumn tableColumn = getColumnModel().getColumn(column);
        TableCellRenderer renderer = tableColumn.getCellRenderer();
        DefaultTableCellRenderer rend = new DefaultTableCellRenderer();
        if (renderer == null)
        {
            return rend;
        }
        else
        {
            return renderer;
        }
    }

    public void editingStopped(ChangeEvent e)
    {
        TableCellEditor editor =
getCellEditor(editingRow,editingColumn);
        if (editor != null)
        {
            try
            {
                TableModel model = (TableModel)getModel();
                int editingRow = getEditingRow();
                int editingColumn = getEditingColumn();
                Object value = editor.getCellEditorValue();
                Class columnClass = model.getColumnClass(editingColumn);

                if(columnClass == java.lang.Integer.class)
                {
                    Integer aValue = new Integer((String)value);
                    model.setValueAt(aValue,editingRow,editingColumn);
                }
                else if(columnClass == java.lang.Float.class)
                {
                    Float aValue = new Float((String)value);
                    model.setValueAt(aValue,editingRow,editingColumn);
                }
                else if(columnClass == java.lang.String.class)
                {
                    String aValue = (String)value;
                    model.setValueAt(aValue,editingRow,editingColumn);
                }
                else
                {
                    model.setValueAt(value,editingRow,editingColumn);
                }
                removeEditor();
                fireEditedCell(editingRow,editingColumn);
            }// end try
            catch(Exception ce)
            {
                ce.printStackTrace(System.err);
            }//end catch
        }//end if

    }//end editingStoped
    public void fireEditedCell(int row, int col)
    {
        Class rendererClass = (getCellRenderer(row,col)).getClass();
        if(rendererClass == DefaultTableCellRenderer.class)
        {
            DefaultTableCellRenderer ren = (DefaultTableCellRenderer)

getCellRenderer(row,col);
            ren.setForeground(Color.red);
            ren.setBackground(Color.red);
        }
    }
Technical Details
Message-ID: <36362FDE.D930161F@prb.net>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 111d45,92725cedc5e8d089,start
X-Google-Attributes: gid111d45,public
From: Ronald Mazyck <rmazyck@prb.net>
Subject: Changing cell foreground after edit
Date: 1998/10/27
Message-ID: <36362FDE.D930161F@prb.net>
X-Deja-AN: 405679928
Content-Transfer-Encoding: 7bit
Organization: Another Netscape Collabra Server User
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0
Newsgroups: borland.public.jbuilder.java.swing