Jtable setDefaultEditor on a cell??

I have a table that has several cells that are of type integer. I would like to place a custom editor on one of the columns. I have wrote my editor but it works on all of the interger cells rather than the "Zip Code" cell that I would like it to work on. Could someone point me to the right url or api that would tell me how to set a editor to a specific column rather than an entire table.
Thanks!
wade
This is what I am doing now, of course this is wrong but I can't find anything else.
table.setDefaultEditor(Integer.class, new ZipCodeEditor());

The only problem with that method is that you aren't motivated then to create generic editors. For example, create your own generic Integer editor that you can control via some settings (when you create an instance of it) that restrict the types of Integers it can/will edit, etc. Reuse. A little extra work in the short run can safe you work in the long run. But either will work.
Also, if you are creating a custom value class just for your table to use... that seems like a bit much, and doesn't really follow the practice of your view being separate from the model. But that is just me...

Similar Messages

  • JTable how to set cell ediatble false

    - Can teach me JTable how to set cell ediatble false?
    - And I'm not so understand about following method and sentence...
    addRowSelectionInterval(int index0, int index1)
    Adds the rows from index0 to index1, inclusive, to the current selection.
    - Then what is toggle? What is the usage? How to use?
    - Then how to add one more row in the Jtable?

    - Can teach me JTable how to set cell ediatble false?check the method isCellEditable()
    Use DefaultTableModel
    - And I'm not so understand about following method and sentence...
    addRowSelectionInterval(int index0, int index1)
    Adds the rows from index0 to index1, inclusive, to the current selection.
    - Then what is toggle? What is the usage? How to use?
    - Then how to add one more row in the Jtable?[JTable API|http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTable.html]

  • How do I create a JTable with some empty cells in it?

    I have a three column JTable. The first column is a String showing description. The second column contains numbers (double) and the third column also contains numbers. In some cases not all cells in a row should contain data. So for instance, I could have row one showing only description (a String in the first column), and then row two showing description (a String in the first column) and a number (a double in the second column) in columns one and two respectively. My problem is that, the data gets copied from the cells with data to the cells which are supposed to be empty. So, how do I create a JTable with some empty cells in it.

    I have tried empty strings for those values, but it did not work. My table puts objects in an arraylist called reconciliation. The arraylist takes different objects with the same super class. The code below explains. Are you suggesting I pass null to my constructor?
    JTable table = new JTable(new ReconTableModel());The method below is from the table model
    protected  List<Reconciliation> reconciliation = new ArrayList<Reconciliation>();
    protected void fillModel(){
          reconciliation.add(new CashBook("Cash Book Report"," "," "));
          reconciliation.add(new CheckingBankAccount("Checking Bank Account"," "," "));
          reconciliation.add(new BankBalance("Bank Balance As Per Bank Statement",500," "));
          reconciliation.add(new PaymentVouchers("Payment Voucher Receipt",300," "));
          reconciliation.add(new DepositVoucher("Deposit Voucher Receipt",1000," "));
          reconciliation.add(new ReconciledBalance("Reconcilied Bank Balance",1200," "));
          reconciliation.add(new BalanceAt("Bank Balance At",800," "));
          reconciliation.add(new Difference("Difference",400," "));
          Collections.sort( reconciliation, new Comparator<Reconciliation>(){
          public int compare( Reconciliation a, Reconciliation b) {
            return a.getTransactionName().compareTo( b.getTransactionName());
      }

  • Problem in JTable with a JComboBox cell editor

    Hi gurus,
    Please help! I am having a problem with a JTable that has a JComboBox cell editor. When the table is first loaded, the combo box column displays correct data. But whenever I click the combo box, the selection will be set to the first item in the combo box list once the popup menu pops up even before I make any new selection. It is very annoying.
    Here is how I set the cell editor:
    populateComboBoxModel(); // populate the combo box model.
    DefaultCellEditor cell_editor = new DefaultCellEditor(new JComboBox(
    combo_model));
    contrib_table.getColumnModel().getColumn(1).setCellEditor(
    cell_editor);
    I didn't set the cell renderer so I assume it is using the default cell renderer.
    Thanks !

    Not quite. The example doesn't have a different cell editor for each row of the table. I'm sure I must be missing something, bc I've found many references to the fact that this is possible to do. And I have most of it working. However, when I click on any given combobox, it automatically switches to the first value in the list, not the selected item. I've tried setting the selected item all over the code, but it has no effect on this behavior. Also, it only happens the first time I select a given cell. For example, suppose the first row has items A, B, and C, with B being the selected value. The table initially displays with B in this cell, but when I click on B, it switches to A when it brings up the list. If I select B, and move on to some other cell, and then go back and click on B again, it doesn't switch to A.
    There seems to be a disconnect between the values that I display initially, and the values that I set as selected in the comboboxes. Either that, or it behaves as though I never set the selected item for the combobox at all.
    Any help would be greatly appreciated.

  • JTable, how to highlight cells with tooltips?

    Hello all!
    Mine problem is descriped in the topic - I though about custom cell renderer but I dont have an Idea how to change background for many other cells in other rows and don't change background in whole columns. Any of You could help?

    Hey thanks for replying.
    With code like that:
    public class yellowCellRenderer
      extends DefaultTableCellRenderer
      private int whichRow = 0;
      public yellowCellRenderer(int saveToRow)
        this.whichRow = saveToRow;
      public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column)
        if(this.whichRow == row){
         this.setBackground(Color.YELLOW);  // All columns verified were empty - set our background RED
        return this;
    }and usage:
         comments.add(comment);
         JTable table = getMainTable();
         TableColumnModel colModel = table.getColumnModel();
         for(int i=0;i<comment.length;i++){
             if(!Main.isStringEmpty((String)comment)){
              TableColumn column = colModel.getColumn(i);
              column.setCellRenderer(
                   new yellowCellRenderer(table.getRowCount()-1)
    Every each cell in column gets yellow background... What am I doing wrong?

  • Setting value in a cell in JTable where editor for cell is a JComboBox

    Hi,
    I have a column in a JTable where it holds a comboBox . As the comboBox has different
    values depending on the row I've a cell editor for each row. That's fine. My problem is that one of the
    values on the comboBox launches a dialog where the user selects a new value to add to the comboBox.
    The comboBox gets updated with this new value and I call setValueAt on the table. Both get updated
    but the cell doesn't display the new value added in the JTable. I click it and the comboBox has the
    value and I've to select it to get it displayed in the cell.
    Here's the code for updating the tableModel -
    public void updateCellDetails(String value, int row)
    JComboBox combo = (JComboBox) rowEditor.getTableCellEditorComponent(
                        this,
                        value,
                        true,
                        row,
                        4);
    if (combo != null)
    combo.insertItemAt(value, combo.getItemCount() - 1);
    combo.setSelectedItem(value);
    rowEditor.setEditorAt(row, new DefaultCellEditor(combo));
    MyTableModel tableModel = (MyTableModel) getModel();
    tableModel.setValueAt(value, row, 4);
    Thanks

    Not sure if this'll help, but did you ever fire an editing-stopped event? If such an event is never fired, then editing-cancelled will be fired when you lose focus from the editor and the original value will be restored.

  • JTable - Programmatically selection multiple cells

    Hi!
    I'd like to know wether it's possible to programmatically select certain cells of a Jtable component.
    For example:
    My Jtable looks like that
    1 2 3
    4 5 6
    7 8 9
    and I want to select cell 2,4 and 7. How could I do that??
    Thanks for answers...

    Hello,
    I consciously read your thread, but I still can't get the sample code running.
    (java.lang.StackOverflowError
    Exception in thread "main" )
    Would you please give me a hint?
    Or better,
    send or post me the sample code of your class 'AttributiveCellTableModel', please.
    Thank you very much in advance!
    Thorsten

  • Make Enter in cell ( in JTable ) go to right cell not lower cell

    How do I do that? NO matter what editor I am using, everytime I press Enter, I will go to the lower cell. I want to make it go to right cell. Except the most right cell. If that the case, it will go to the lower cell but in the most left column.
    Thank you.

    I want to make it go to right cell. Except the most right cell. If that the case, it will go to the lower cell but in the most left column. You are describing the default behaviour of the "tab" key. So basically you want the "enter" key to behave the same way as the "tab" key.
    Read this section from the Swing tutorial on [url http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html]How to Use Key Bindings. It will explain how KeyStrokes are mapped to Actions for a given component.
    Then for practical application of the above knowledge, check out this [url http://forum.java.sun.com/thread.jspa?forumID=57&threadID=505866]posting which shows how you can map the Action of one KeyStroke to another KeyStroke for JTable.

  • JTable CellRenderer and NULL cells

    Hi,
    I have a table where several cells have "nulls" in them. I want to set the backgound color of my cells. I use:
      myTable.setsetDefaultRenderer(Object.class, new MyCellRenderer());where MyCellRenderer extendsDefaultTableCellRenderer
    This works fine for all cells except when a cell has a null value in it. Than the renderer is never called. Is there a solution?
    Here is the code for MyCellRenderer:
    class MyCellRenderer extends DefaultTableCellRenderer {
      public Component getTableCellRendererComponent
              (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
        // Obtains default cell settings
        Component cell = super.getTableCellRendererComponent ( table, value,isSelected, hasFocus, row, column);
        if (row % 2 == 0)
          cell.setBackground(Color.blue);
        else
           cell.setBackground(Color.gray);
        if (column % 2 == 0) cell.setBackground(Color.green);
        return cell;
    }Thanks
    SUP

    Register your renderer with the TableColumn or register the class related to your renderer with the TableColumn.
    Basically, JTable retrieves its editors and renderer from a hashtable, and nulls cause a problem.
    Consider some type of intelligent data wrapper that contains a null data value, but it itself is not null. Or maybe a null token class.
    -jonathan

  • JTABLE  Number Editor - Table Cell Renderer Clash

    Hello gentlemen,
    I have a JTABLE with an editable column 1. I implement a number editor and a table cell renderer (pls see below) to this column. I apply the setClickCountStart(2) method to the number editor in order to render each cell in the column editable only after two clicks. However, I believe setClickCountStart(2) is somehow overridden by a "default" functionality in my
    CustomTableCellRenderer.
    My problem is that any cell I select (click only once) in column1 is automatically editable whereas I only want a cell to be editable after two clicks.
    Please see my code below. Any comment is more than welcome!
    Cheers.
    hoodNumberEditor = new NumberEditor();
            hoodNumberEditor.setClickCountToStart(2);
            class CustomTableCellRenderer extends DefaultTableCellRenderer {
                public Component getTableCellRendererComponent(JTable table,
                        Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
                    Component cell = super.getTableCellRendererComponent(
                            table, obj, isSelected, hasFocus, row, column);
                    if (isSelected) {
                        cell.setBackground(Color.white);
                        cell.setForeground(Color.black);
                    return cell;
           CustomTableCellRenderer customrenderer = new CustomTableCellRenderer();
            table.getColumn(1).setCellRenderer(customrenderer);
            table.getColumn(1).setCellEditor(hoodNumberEditor);

    1) Your custom cell renderer does nothing extra, so you can depend on default renderer.
    2) Instead of extending JLabel and implementing TableCellReneder, you should extend DefaultTableCellRenderer and override its get renderer method because DefaultTableCellRenderer itself extends JLabel and aditionally it does some optimizations etc., which you can miss if you implement your own renderer.
    3) If you set foreground and background color in last else statement also, then you can see the values correctly in windows L&F as well.
    Thanks!

  • Problem with JTable and JComboBoxes in cells

    Hello,
    I've build a Table with static comboboxes in the first row. These comboboxes are static because they are used to filter the content of the table.
    I extended AbstractTableModel for the data handling and I use the DefaultCellRenderer for combobox handling.
    So far everything works fine. But if I gain focus to one combobox and then click to another cell (either table cell or another combobox) i receive a NullPointerException from within the component:
    java.lang.NullPointerException
         at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.adjustFocusAndSelection(Unknown Source)
         at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mousePressed(Unknown Source)
         at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
         at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)The problem is, that no error is visible on client side! I just see the NullPointerException in my console but no GUI Errors occur.
    Actually I could leave the table as it is now because there are no obvious errors but I don't think its a good job to ignore exceptions.
    Does anyone see where this problem could come from????
    Do I have to extend the BasicTableUI somehow because the exception is thrown in there???
    Thanks for any help!
    Bye Jan

    Hi brad,
    I'm using eclipse and java1.4.2_06. Isn't it enough to write the program arguments to the run configuration in eclipse?!
    I tried that but it didn't work out, I get the same error msg. :(
    But I can say that whatever happens inside the UI, the exception is thrown before I receive a mouseClicked event on the table itself. I added some kind of dummy mouse listener to the table that only prints the events to the console. Is the cell renderer or cell editor using is own MouseAdapter?
    You said: ...consume the event so the table won't react....
    How could I catch this MouseInputHandler???
    Thanx!
    Jan

  • Jtable keep the selected cells' background

    hi,
    I want to change the background color of the selected cells.
    after selection, I may do another selection,but I want to keep the previous selected cells' background color.
    any help will be appreciated!
    thanks!
    zhangv

    Did you try using Ctrl + Mouse Click ?
    Remember you need to set following property before you try the above solution:
    tableObj.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );

  • JTable - help with custom cell renderers and editors

    I've got myself into a bit of a mess with cell renderers and editors.
    I've got a custom component that wants displaying in a column and then hand over all functionality to this component when you start editing it.
    Now how I went out about this was to create a custom cell renderer that extends this component and implements TableCellRenderer.
    I then created a table cell editor that extends AbstractCellEditor and implements TableCellEditor and this cell editor creates a new component when it's initialized. I then use setCellEditor(new MyCellEditor()) on the column and setCellRenderer(new MyCellRenderer()).
    This works slightly but I'm wondering how this is all implemented.
    When I set the cell editor on it's own it seems to be sharing a reference to the single component that's being used which means that if you edit one cell all the cells get changed to the new value.
    Thanks for the help,
    Alex

    only a few forums are actually browsedAnd theSwing forum is one of the most active. Did you search it for editiing examples? I've seen many editing examples posted in a SSCCE format.
    SSCEE is also impossible as the functionality spans over about 10 classes We did not ask for your application, we asked for a SSCCE. The whole point of a SSCCE is to simplify the 10 classes into a single class and maybe an inner class for the editor to make sure you haven't made a silly mistake that is hidden because of the complexity of your real application.

  • Single JTable Column with several diff Cell Editors

    Am trying to create a single JTable column that can have several different cell editors. Java seems to be bias to having 1 cell editor for the whole column.
    For example in 1 column can I have
    Row1 : TextBox
    Row2: Check Box
    Row3: Radio Buttons
    Row4: JColorChooser
    At the moment I can only have one CellEditor for the whole column which is not very helpful.

    the default implementation offers to provide editors per column in the tableColumn and/or editors per class type by setting default editors ( JTable.setDefaultEditor(Class class, TableCellEditor editor) ). If you look at the getCellEditor method of JTable you see that first the tablecolumns are asked for an editor, and if this doesnt succeed a default editor for the class acording to the value at the passed grid position is determined.
    If this does not fullfil your needs, you can still overwrite the getCellEditor method of JTable and return whatever editor is suitable.
    regards,
    stefan

  • How to select rows in the inner JTable rendered in an outer JTable cell

    I have wrriten the following code for creating cell specific renderer - JTable rendered in a cell of a JTable.
    table=new JTable(data,columnNames)
    public TableCellRenderer getCellRenderer(int row, int column)
    if ((row == 0) && (column == 0))
    return new ColorRenderer();
    else if((row == 1) && (column == 0))
    return new ColorRenderer1();
    else
    return super.getCellRenderer(row, column);
    ColorRenderer and ColorRenderer1 are two inner classes, which implement TableCellRenderer to draw inner JTable on the outer JTable cell, having 2 rows and 1 column each.
    Now what is happening the above code keeps executing continously, that is the classes are being initialised continously, inner JTables are rendered (drawn) continously, and this makes the application slow after some time. It throws java.lang.OutOfMemoryException.
    WHY IS IT SO??? I can't understand where's the bug..
    Any advice please???
    Moreover i want selections in inner tables and not on outer table, how can this be possible.
    I am working on this since a long time but have not yet found a way out...

    With your help i have overcome the problem of continous repeatition.
    The major problem which I am facing is, in selecting rows in the inner rendered JTables.
    I have added listener on outer JTable which select rows on the outer JTable, hence the complete inner JTable which being treated as a row, gets selected.
    The thing is i need to select the rows of inner rendered JTables,not the outer JTable.
    How to go about it??
    I have even added listener to inner rendered JTables, but only first row of every table gets selected.
    Please help....
    Thanks in advance.

Maybe you are looking for

  • Failed to create key MRU

    I am using the application Visual CertExam Designer, When i am closing the application an error occurs, It says that Failed to create key MRU. What is the problem? How i can solve it?

  • Wrong pass word entred more than 10 times.

    wrong pw entred by children= itouch diactivated how to restore it ?

  • Connection Not Available! [NOKIA E63]

    i am using NOKIA E63. I have just update My Software(Firmware) using NOKIA SUITE just tommorow. but now i couldn't Access internet using my NOKIA E63 Mobile. i have following error when i brows any website in Defaoult browser comes with NOKIA E63. Er

  • Copy and Paste functions not working

    I'm using windows 7 and 8. I can copy and paste photos , but when I copy a URL the paste function does not work. It is greyed out.

  • Just got back from the O2 store, iPhone activated, sync'd and....

    I gotta say, its awesome. Even better than I was expecting. I know this isnt a support question but its positive feedback. I did my research before I bought the phone, so I new what it did/didnt do. Activation was a breeze and Im just blown away, its