Capturar numeros de um Jspinner

Bom dia Gente, como faço para capturar os numeros de vários JSpinner dentro de uma tabela… segue a foto do que estou falando, todos esse JSpinner que aparece na imagem eu queria captura os vcalores deles


Alguem?

Primeiro percorra as linhas da sua JTable recupera o JSpinner na 4 coluna depois de um getValue() no seu JSpinner.

DefaultTableModel tableModel = (DefaultTableModel) tabela.getModel(); int total = tableModel .getRowCount(); for (int x=0; x<total; x++) { JSpinner spin = (JSpinner ) tableModel.getValueAt(x, 3); int valor = (Integer) spin.getValue(); } >

Beleza eu testei isso, coloquei no botao salvar esse comando que voce passou so que na hora de pegar o Spinner ele da o seguinte erro…

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to javax.swing.JSpinner
	at apontamento.JFCadastraRota.btnSalvarActionPerformed(JFCadastraRota.java:328)

So que eu uso uma classe que cria esse Jspinner, eu não usei o do netbeans,

Posta o código onde você adiciona o JSpinner a sua JTable.

Seria isso?

    ListaRotaTModel  tableModel = (ListaRotaTModel ) jTable1.getModel();
        int total = tableModel.getRowCount();  
        for (int x=0; x<total; x++) {  
        PadraoGridView spin = (PadraoGridView ) tableModel.getValueAt(x, 3); 
        
        int valor = (Integer) spin.getCellEditorValue();
        }  

Essa e a minha classe que cria o Jspinner dentro da Jtable…

public class PadraoGridView extends DefaultTableCellRenderer implements TableCellEditor {  
     JSpinner spinner = new JSpinner();
     
    private double valoranterior;
    @Override
    public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) {
        // component will actually be this.
        Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        component.setBackground(row%2==0 ? Color.getHSBColor(125,255,145) : Color.LIGHT_GRAY);
        
        //JSpinner spinner = new JSpinner();
        TableColumn col1 = table.getColumnModel().getColumn(3);
        //TableColumn col = table.getColumnModel();
        TableColumnModel col = table.getColumnModel();
        col.getColumn(0).setPreferredWidth(200);
        col.getColumn(1).setPreferredWidth(300);
        col.getColumn(2).setPreferredWidth(30);
        col.getColumn(3).setPreferredWidth(50);
        
        col1.setCellEditor(new PadraoGridView());
        if(column == 3){
            table.setRowHeight(30);
            //table.setEditingRow(row);
            //if (component instanceof JLabel) {
            //spinner.setValue(Integer.valueOf(((JLabel) component).getText()));
            //TableColumn column = table.getColumnModel().getColumn(1);
            //} else if (value != null) {
            //spinner.setValue(Integer.valueOf(value.toString()));
            //} else {  
            //System.out.println("Não foi possivel criar Renderer");
           //}
            // spinner.setEditor(spinner);
            spinner.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1)));
            return spinner;
        } else {
            return component;
        }
        
    }
    @Override
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        spinner.setValue(value);
        return spinner;
        
    }

    @Override
    public Object getCellEditorValue() {
        return spinner.getValue();
    }

    @Override
    public boolean isCellEditable(EventObject anEvent) {
        Object evt = null;
        if (evt instanceof MouseEvent) {
            return ((MouseEvent) evt).getClickCount() >= 2;
    }
        return true;
    
}

    @Override
    public boolean shouldSelectCell(EventObject anEvent) {
         return true; 
    }

    @Override
    public boolean stopCellEditing() {
        return true;

    }
    @Override
    public void cancelCellEditing() {
    }

    @Override
    public void addCellEditorListener(CellEditorListener l) {
        listenerList.add(CellEditorListener.class, l);
    }

    @Override
    public void removeCellEditorListener(CellEditorListener l) {
        listenerList.remove(CellEditorListener.class, l);
        
    }
   



}

Entendeu??

?

Tenta imprimir o que ta vindo na String…

Como assim imprimir o que vem na String?

Na imagem que eu mandei no campo da tabela chamado Seq.Entrega eu irei definir qual cliente vai ser entregue a mercadoria primeiro certo?, ai nessa mesma imagem eu tenho um botao salvar que eu penso em que, quando o operador realizar a consulta eu ja irei ter uma lista carregada com as informações como cod_cliente, nome_cliente, peso_do_produto… Com essas informações o operador vai definir qual cliente vai ser entregue a mercadoria, ele definindo eu so vou fazer um for para adicionar a esta lista a sequencia de entrega definida neste Jspinner,so que quando eu clico no botao salvar com esse metodo que voce me passou da este erro.

    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        
        ListaRotaTModel  tableModel = (ListaRotaTModel ) jTable1.getModel();
        int total = tableModel.getRowCount();  
        for (int x=0; x<total; x++) {  
        PadraoGridView spin = (PadraoGridView) tableModel.getValueAt(x, 3); 
        
        //JSpinner spin = (JSpinner) tableModel.getValueAt(x, 3);  
        System.out.println("Problema ->"+spin.getCellEditorValue());
        int valor = (Integer) spin.getCellEditorValue();
        }  

Este acima e o botao salvar e este a baixo e o erro que acontece…

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Integer cannot be cast to apontamento.utils.PadraoGridView
	at apontamento.JFCadastraRota.btnSalvarActionPerformed(JFCadastraRota.java:328)
	at apontamento.JFCadastraRota.access$300(JFCadastraRota.java:20)
	at apontamento.JFCadastraRota$4.actionPerformed(JFCadastraRota.java:149)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6288)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6053)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4651)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:616)
	at java.awt.EventQueue$2.run(EventQueue.java:614)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Faz a troca

PadraoGridView spin = (PadraoGridView) tableModel.getValueAt(x, 3);  

Por

System.out.println(tableModel.getValueAt(x, 3));

Acredito que o seu tableModel.getValueAt(x, 3) já esta vindo o valor do seu JSpinner.

Está vindo 0

Porque será que está retornando 0?

Alguem?

O meu problema é o seguinte, quando eu mudo o valor do meu jspinner eu não sei aonde ele armazena esse valor, pois eu tenho que jogar esse valor em uma beans que possui uma variavel que guarda ele…