Results 1 to 8 of 8
  1. #1
    aruna1 is offline Member
    Join Date
    Mar 2009
    Posts
    22
    Rep Power
    0

    Question easy wayto adding jcomponent to a jtable cell

    hello,
    I'm new to java.I created table to display product information using default Jtable.(using netbeans drag and drop jcomponet list).

    Is there any easy way to add a jcomponent to a cell of my jtable like a combobox to select year?

    isearched internet and found few methods but theyare too complex to me and i have to create additonal classes plus i cant figure howto modify my existing code to competible with those methods.

    so if can someone please show me simple way

    thanks

  2. #2
    Fubarable's Avatar
    Fubarable is offline Moderator
    Join Date
    Jun 2008
    Posts
    19,315
    Blog Entries
    1
    Rep Power
    26

    Default

    The simplest I know of is to give your table column a new cell editor and renderer. Both will require that you go through the Sun Swing JTable tutorial, and that is what I recommend you do first before trying anything else. You'll find it here: How To Use Tables

    Best of luck

  3. #3
    aruna1 is offline Member
    Join Date
    Mar 2009
    Posts
    22
    Rep Power
    0

    Default

    i read it i tried its example about adding a combobox and it worked.so is it possible to add combobox only to one cell? instead of adding it to every cell in a column?
    thanks

  4. #4
    Fubarable's Avatar
    Fubarable is offline Moderator
    Join Date
    Jun 2008
    Posts
    19,315
    Blog Entries
    1
    Rep Power
    26

    Default

    What are you trying to accomplish? Mostly I've seen JComboBoxes only present in the edited cell (as an editor) and JLabels present as the renderer. Perhaps you can post your code that you have so far and explain just a little bit more -- which cell will hold the jcombobox? why just one cell? what the other cells in the column will use for a editor?

  5. #5
    aruna1 is offline Member
    Join Date
    Mar 2009
    Posts
    22
    Rep Power
    0

    Default

    Quote Originally Posted by Fubarable View Post
    What are you trying to accomplish? Mostly I've seen JComboBoxes only present in the edited cell (as an editor) and JLabels present as the renderer. Perhaps you can post your code that you have so far and explain just a little bit more -- which cell will hold the jcombobox? why just one cell? what the other cells in the column will use for a editor?
    i will post my code here.i need combobox on one cell for test puposes.actually what i need is three comboboxex in one cell(if is possible-this is to set date)

    Java Code:
    /*
     * ShowProdDetail.java
     *
     * Created on March 27, 2009, 10:44 PM
     */
    
    package store;
    
    /**
     *
     * @author  Aruna
     */
    import javax.swing.DefaultCellEditor;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JOptionPane;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.table.TableColumn;
    import javax.swing.text.TableView.TableCell;
    import javax.swing.text.TableView.TableRow;
    
    public class ShowProdDetail extends javax.swing.JDialog {
        
        
    DefaultListModel listModel=new DefaultListModel();
        
    
        /** Creates new form ShowProdDetail */
        //FixedTableModel model=new FixedTableModel();
        private String name1;
        private String code;
        private String type;
        
        MyTableModel model=new MyTableModel();
    
        private int qty;
        private int price;
    
        
        private int itemNumber;
        private String expire;
        private String manufacture;
        private ListSelectionEvent e;
        
        
        
    
    
        public void setExpire(String expire) {
            this.expire = expire;
        }
    
        public void setManufacture(String manufacture) {
            this.manufacture = manufacture;
        }
    
        public void setCode(String code) {
            this.code = code;
        }
        
        public void setType(String type) {
            this.type = type;
        }
    
        public void setName1(String name1) {
            this.name1 = name1;
            System.out.println(name1);
        }
    
        public void setPrice(int price) {
            this.price = price;
        }
    
        public void setQty(int qty) {
            this.qty = qty;
        }
        
        public void setItemNumber(int itemNumber) {
            this.itemNumber = itemNumber;
        }
        
        
        
        
        public ShowProdDetail(java.awt.Frame parent, boolean modal) {
            super(parent, modal);
            initComponents();
            
            if(typeCombo.getSelectedIndex()==0)
            {
               listModel.clear();
               int i=1;
               
               for(Food fd:Frame1.food)
               {
                   listModel.addElement(i+"."+fd.getName()+"\t"); 
                   i++;
               }
               prodList.updateUI();
               
            }
            
            TableColumn sportColumn = prodDetailsTable.getColumnModel().getColumn(1);
            JComboBox comboBox = new JComboBox();
            JButton but=new JButton();
            but.setText("aruna");
            comboBox.addItem("Snowboarding");
            sportColumn.setCellEditor(new DefaultCellEditor(comboBox));
           
            
            
            
            
            Update.setVisible(false);
            lNotify.setVisible(false);
            
            
            
        }
        
        
        public void setTable()
        {
            //product.setText(name1);
            lType.setText(type);
            prodDetailsTable.setValueAt(this.name1, 0, 1);
            prodDetailsTable.setValueAt(this.code, 1, 1);
            prodDetailsTable.setValueAt(this.manufacture , 2, 1);
            prodDetailsTable.setValueAt(this.expire, 3, 1);
            prodDetailsTable.setValueAt(this.qty, 4, 1);
            prodDetailsTable.setValueAt(this.price, 5, 1);
        }
        
        
        private void prodDetailsTableChanged(java.awt.event.ActionEvent s) {
            System.out.println("aruna");
            
        }
      
        
        
    
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
    
            jScrollPane1 = new javax.swing.JScrollPane();
            prodDetailsTable = new javax.swing.JTable();
            Update = new javax.swing.JButton();
            lType = new javax.swing.JLabel();
            lNotify = new javax.swing.JLabel();
            typeCombo = new javax.swing.JComboBox();
            jScrollPane2 = new javax.swing.JScrollPane();
            prodList = new javax.swing.JList();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
            setTitle("Edit Product data");
            setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
            setLocationByPlatform(true);
    
            prodDetailsTable.setModel(new MyTable(
                new Object [][] {
                    {"Product ID",null},
                    {"Product Code", new Boolean (false)},
                    {"Manufacture Date", null},
                    {"Expire Date", null},
                    {"Quentity", null},
                    {"Price", null}
                },
                new String [] {
                    "Product Details", "Title 2"
                }
            ) {
                Class[] types = new Class [] {
                    java.lang.Object.class, java.lang.String.class
                };
                boolean[] canEdit = new boolean [] {
                    false, true
                };
    
                public Class getColumnClass(int columnIndex) {
                    return types [columnIndex];
                }
    
                public boolean isCellEditable(int rowIndex, int columnIndex) {
                    if(rowIndex==0)
                    return false;
                    else
                    return canEdit [columnIndex];
                }
    
            });
            prodDetailsTable.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
                public void propertyChange(java.beans.PropertyChangeEvent evt) {
                    prodDetailsTablePropertyChange(evt);
                }
            });
            jScrollPane1.setViewportView(prodDetailsTable);
    
            Update.setText("Update");
            Update.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    UpdateActionPerformed(evt);
                }
            });
    
            lType.setText("Product type");
    
            lNotify.setText("Enter new value and press enter key to finish editing");
    
            typeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Food", "Stationary", "Clothes" }));
            typeCombo.addItemListener(new java.awt.event.ItemListener() {
                public void itemStateChanged(java.awt.event.ItemEvent evt) {
                    typeComboItemStateChanged(evt);
                }
            });
    
            prodList.setModel(listModel);
            prodList.setLayoutOrientation(javax.swing.JList.VERTICAL_WRAP);
            prodList.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    prodListMouseClicked(evt);
                }
            });
            jScrollPane2.setViewportView(prodList);
    
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(lType, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(18, 18, 18)
                            .addComponent(typeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
                        .addComponent(lNotify)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                            .addComponent(Update)
                            .addGap(11, 11, 11)))
                    .addContainerGap())
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(typeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(lType))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(lNotify)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(Update)
                    .addGap(33, 33, 33))
            );
    
            pack();
        }// </editor-fold>                        
    
    private void prodDetailsTablePropertyChange(java.beans.PropertyChangeEvent evt) {                                                
        Update.setVisible(true);
        lNotify.setVisible(true);
    
        // TODO add your handling code here:
    }                                               
    
    private void UpdateActionPerformed(java.awt.event.ActionEvent evt) {                                       
    
        
        if(lType.getText().equals("Food"))
        {
            Food fd=new Food();
            fd.setName(name1);
            fd.setCode((String)prodDetailsTable.getValueAt(1, 1));
            fd.setManufacture((String)prodDetailsTable.getValueAt(2, 1));
            fd.setExpire(prodDetailsTable.getValueAt(3, 1).toString());
            fd.setQuentity(Integer.parseInt(prodDetailsTable.getValueAt(4, 1).toString()));
            fd.setPrice(Integer.parseInt(prodDetailsTable.getValueAt(5, 1).toString()));
            Frame1.food.remove(itemNumber);
            Frame1.food.add(itemNumber, fd);
            
            //System.out.println(fd.getManufacture());
            //System.out.println(itemNumber);
            //System.out.println(Frame1.food.size());
            //System.out.println(Frame1.food.get(itemNumber).getExpire());
            //System.out.println(Frame1.food.get(itemNumber).getQuentity());  
            
        }
        
            Update.setVisible(false);
            lNotify.setVisible(false);
            JOptionPane.showMessageDialog(this,"Updated");
        // TODO add your handling code here:
    }                                      
    
    private void prodListMouseClicked(java.awt.event.MouseEvent evt) {                                      
    
        int item=prodList.getSelectedIndex();
        this.setItemNumber(item);
        
        if(typeCombo.getSelectedIndex()==0)
        {
            System.out.println(Frame1.food.get(item).getName());
            this.setName1(Frame1.food.get(item).getName());
            this.setType("Food");
            this.setCode(Frame1.food.get(item).getCode());
            this.setManufacture(Frame1.food.get(item).getManufacture());
            this.setExpire(Frame1.food.get(item).getExpire());
            this.setQty(Frame1.food.get(item).getQuentity());
            this.setPrice(Frame1.food.get(item).getPrice());
        }
        
        if(typeCombo.getSelectedIndex()==1)
        {
            System.out.println(Frame1.stationary.get(item).getName());
            this.setName1(Frame1.stationary.get(item).getName());
            this.setType("Stationary");
            this.setCode(Frame1.stationary.get(item).getCode());
            this.setManufacture("-");
            this.setExpire("-");
            this.setQty(Frame1.stationary.get(item).getQuentity());
            this.setPrice(Frame1.stationary.get(item).getPrice());
        }
        
         this.setTable();
         this.setVisible(true);
        // TODO add your handling code here:
    }                                     
    
    private void typeComboItemStateChanged(java.awt.event.ItemEvent evt) {                                           
    
        for(int r=0;r<=5;r++)
        {
            prodDetailsTable.setValueAt(null, r, 1);
        }
        
        if(typeCombo.getSelectedIndex()==0)
       {
           listModel.clear();
           int i=1;
           for(Food fd:Frame1.food)
           {
             listModel.addElement(i+"."+fd.getName()+"\t");
             i++;
            
               
           }
           prodList.updateUI();
           
       }
       
       if(typeCombo.getSelectedIndex()==1)
       {
           listModel.clear();
           int i=1;
           for(Stationary st:Frame1.stationary)
           {
             listModel.addElement(i+"."+st.getName());
             i++;
            
               
           }
           prodList.updateUI();
           
       }
        // TODO add your handling code here:
    }                                          
    
        /**
        * @param args the command line arguments
        */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    ShowProdDetail dialog = new ShowProdDetail(new javax.swing.JFrame(), true);
                    dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                        @Override
                        public void windowClosing(java.awt.event.WindowEvent e) {
                            System.exit(0);
                        }
                    });
                    dialog.setVisible(true);
                }
            });
        }
    
        // Variables declaration - do not modify                     
        private javax.swing.JButton Update;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JScrollPane jScrollPane2;
        private javax.swing.JLabel lNotify;
        private javax.swing.JLabel lType;
        private javax.swing.JTable prodDetailsTable;
        private javax.swing.JList prodList;
        private javax.swing.JComboBox typeCombo;
        // End of variables declaration                   
    
       
    }

  6. #6
    markw8500's Avatar
    markw8500 is offline Senior Member
    Join Date
    Jul 2008
    Location
    Pennsylvania, USA
    Posts
    136
    Rep Power
    0

    Default

    I have actually been dabbling with this myself... So I have not perfected it but at least this will get you started... I am using a documentFilter on my Combobox, so some of this code may not apply to you...

    I created a RowRenderer:

    Java Code:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package comboBoxes;
    
    import java.awt.Component;
    import java.util.Hashtable;
    import javax.swing.JComboBox;
    import javax.swing.JComponent;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.TableCellRenderer;
    
    /**
     *
     * @author root
     */
    public class RowRenderer implements TableCellRenderer {
    
        protected Hashtable renderers;
        protected TableCellRenderer renderer,  defaultRenderer;
        private JTable jt;
        private JTableComboBox comboBox;
        private int theCol=0;
    
        public RowRenderer(JTable t) {
            jt=t;
            renderers = new Hashtable();
            defaultRenderer = new DefaultTableCellRenderer();
        }
    
        public void add(int row, int col) {
    
            theCol=col;
            String[] values = new String[]{"","1.85", "1.50", "1.35"};
            comboBox=new JTableComboBox(values, 2, 10);
    
    
            renderers.put(new Integer(row), new MyComboBoxRenderer(comboBox));
        }
    
    
        public void remove(int row){
            renderers.put(new Integer(row), new DefaultTableCellRenderer());
        }
    
        public Component getTableCellRendererComponent(JTable table, Object value,
                boolean isSelected, boolean hasFocus, int row, int column) {
    
            renderer = (TableCellRenderer) renderers.get(new Integer(row));
            if (renderer == null) {
                renderer = defaultRenderer;
            }
            return renderer.getTableCellRendererComponent(table, value, isSelected,
                    hasFocus, row, column);
        }
    
    
        public class MyComboBoxRenderer extends JComboBox implements TableCellRenderer {
    
            JComponent component = new JTextField();
            private JTableComboBox cb;
    
            public MyComboBoxRenderer(JTableComboBox comboBox) {
    
                //super(items);
    
                cb = comboBox;
            }
    
            public Component getTableCellRendererComponent(JTable table, Object value,
                    boolean isSelected, boolean hasFocus, int row, int column) {
                
                if (hasFocus && column==theCol) {
    
                    jt.editCellAt(jt.getSelectedRow(), theCol);
                    Component myEditor = jt.getEditorComponent();
    
                    myEditor.requestFocus();
    
                    
    
                }
    
                cb.setSelectedItem(value);
    
    
    
                return cb;
            }
        }
    
    
    }


    Then I created a RowEditor:



    Java Code:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package comboBoxes;
    
    import java.awt.Component;
    import java.util.Hashtable;
    import javax.swing.AbstractCellEditor;
    import javax.swing.JComponent;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.table.TableCellEditor;
    
    /**
     *
     * @author root
     */
    public class RowEditorModel {
    
        private Hashtable data;
        private JTableComboBox comboBox;
    
        public RowEditorModel(JTable t) {
            data = new Hashtable();
    
        }
    
        public void addEditorForRow(int row) {
            String[] values = new String[]{"", "1.85", "1.50", "1.35"};
            comboBox = new JTableComboBox(values, 2, 10);
    
    
            data.put(new Integer(row), new MyComboBoxEditor(comboBox));
        }
    
        public void removeEditorForRow(int row) {
            data.remove(new Integer(row));
        }
    
        public TableCellEditor getEditor(int row) {
            return (TableCellEditor) data.get(new Integer(row));
        }
    
        /**
         * @return the cb
         */
        public JTableComboBox getCb() {
            return getComboBox();
        }
    
        /**
         * @return the comboBox
         */
        public JTableComboBox getComboBox() {
            return comboBox;
        }
    
        public class MyComboBoxEditor extends AbstractCellEditor implements TableCellEditor {
    
            JComponent component = new JTextField();
            private JTableComboBox cb;
    
            public MyComboBoxEditor(JTableComboBox comboBox) {
    
                cb = comboBox;
                cb.setText(true);
            //cb.requestFocusInWindow();
    
            }
    
            public Object getCellEditorValue() {
    
                cb.setText(true);
                //System.out.println(cb.hasFocus());
    
                if (cb.getSelectedItem().toString().isEmpty()) {
    
                    return cb.getEditor().getEditorComponent().getAccessibleContext().getAccessibleEditableText().getTextRange(0, cb.getEditor().getEditorComponent().getAccessibleContext().getAccessibleEditableText().getCharCount());
                }
    
    
    
    
                return cb.getSelectedItem();
            //throw new UnsupportedOperationException("Not supported yet.");
            }
    
            public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
    
    
                //cb.requestFocusInWindow();
    
                cb.getMyDF().clearDocument();
                cb.setSelectedIndex(0);
                cb.setText(false);
                return cb;
            //throw new UnsupportedOperationException("Not supported yet.");
            }
        }
    }


    Then I overrode JTable :




    Java Code:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package comboBoxes;
    
    import java.util.Vector;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableCellEditor;
    import javax.swing.table.TableColumn;
    
    /**
     *
     * @author root
     */
    public class MyJTable extends JTable {
    
        private DefaultTableModel myModel;
        private RowEditorModel rm;
        private RowRenderer rr;
        private int rowRendererColumn=0;
    
    
        public MyJTable() {
            super();
    
            myModel = new DefaultTableModel();
            myModel.setColumnCount(3);
            myModel.setRowCount(10);
    
            this.setModel(myModel);
            
            rm = new RowEditorModel(this);
            this.setRowEditorModel(rm);
            
    
            rr=new RowRenderer(this);
    
            Vector<String> items = new Vector<String>();
    
            items.addElement("1.25");
    
            setComboBox(2,2,items);
            setComboBox(3,2,items);
            setComboBox(4,2,items);
            removeComboBox(3,2);
        }
    
        public void removeComboBox(int row, int col){
    
            this.removeRowRenderer(row, col);
            rm.removeEditorForRow(row);
        }
    
    
        public void setComboBox(int row, int col, Vector<String> items){
    
            rowRendererColumn=col;
            this.setRowRenderer(row, col);
            rm.addEditorForRow(row);
    
            rm.getComboBox().removeAllItems();
            rm.getComboBox().addItem("");
    
            for(int i=0; i<items.size(); i++){
                rm.getComboBox().addItem(items.elementAt(i));
            }
    
            
    
    
        }
    
        public void setRowRenderer(int row, int col){
    
            rr.add(row,col);
            TableColumn column = this.getColumnModel().getColumn(col);
            column.setCellRenderer(rr);
    
        }
    
        public void removeRowRenderer(int row, int col){
    
            TableColumn column = this.getColumnModel().getColumn(col);
            rr.remove(row);
    
            column.setCellRenderer(rr);
    
        }
    
        public void setRowEditorModel(RowEditorModel rm) {
            this.rm = rm;
        }
    
        public RowEditorModel getRowEditorModel() {
            return rm;
        }
    
       
        public TableCellEditor getCellEditor(int row, int col) {
            TableCellEditor tmpEditor = null;
            if (rm != null && col==rowRendererColumn) {
                tmpEditor = rm.getEditor(row);
                
    
            }
            
            if (tmpEditor != null) {
                return tmpEditor;
            }
            return super.getCellEditor(row, col);
        }
    
    
    
    }

    So far, I have only got to work on various rows but only one column... So if you try to "setComboBox(row,col,items)" on two different columns... It sets the comboBox for each row and each column...

    Hope this helps...

  7. #7
    Fubarable's Avatar
    Fubarable is offline Moderator
    Join Date
    Jun 2008
    Posts
    19,315
    Blog Entries
    1
    Rep Power
    26

    Default

    I think that you may want to Google for a Java date picker class.

  8. #8
    aruna1 is offline Member
    Join Date
    Mar 2009
    Posts
    22
    Rep Power
    0

Similar Threads

  1. Color cell in JTable
    By ippacciani in forum AWT / Swing
    Replies: 3
    Last Post: 03-25-2009, 12:53 PM
  2. set different font for each cell in JTable
    By success21061985 in forum AWT / Swing
    Replies: 3
    Last Post: 09-10-2008, 03:06 PM
  3. jTable Cell editing
    By mahaling_m in forum AWT / Swing
    Replies: 0
    Last Post: 06-23-2008, 09:17 AM
  4. Jframe In Jtable cell
    By Clarion in forum AWT / Swing
    Replies: 4
    Last Post: 06-23-2008, 05:42 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •