2017-01-11 9 views
2

Я использую качели и пытаюсь преобразовать одну дату из базы данных, я использовал основную деталь для создания моей формы! Когда я использую его с датой типа, это работает отлично, но когда я пытаюсь использовать с LocalDate это я получаю это исключение:Как использовать форматированные текстовые поля с типом LocalDate?

Exception in thread "AWT-EventQueue-0" org.jdesktop.beansbinding.PropertyResolutionException: Exception invoking method public void javax.swing.JFormattedTextField.setValue(java.lang.Object) on javax.swing.JFormattedTextField[,71,210,541x28,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,[email protected],flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=,disabledTextColor=DerivedColor(color=142,143,145 parent=nimbusDisabledText offsets=0.0,0.0,0.0,0 pColor=142,143,145,editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=DerivedColor(color=255,255,255 parent=nimbusSelectedText offsets=0.0,0.0,0.0,0 pColor=255,255,255,selectionColor=DerivedColor(color=57,105,138 parent=nimbusSelectionBackground offsets=0.0,0.0,0.0,0 pColor=57,105,138,columns=0,columnWidth=0,command=,horizontalAlignment=LEADING] 

Это моя форма:

пакет br.com.imprimindo .conteudo.itext;

import java.awt.EventQueue; 
import java.beans.Beans; 
import java.util.ArrayList; 
import java.util.List; 
import javax.persistence.RollbackException; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class Form extends JPanel { 

    public Form() { 
     initComponents(); 
     if (!Beans.isDesignTime()) { 
      entityManager.getTransaction().begin(); 
     } 
    } 

    /** 
    * 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() { 
     bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); 

     entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("APPPU").createEntityManager(); 
     query = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT p FROM Produto p"); 
     list = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(query.getResultList()); 
     masterScrollPane = new javax.swing.JScrollPane(); 
     masterTable = new javax.swing.JTable(); 
     idLabel = new javax.swing.JLabel(); 
     codigoLabel = new javax.swing.JLabel(); 
     ddvLabel = new javax.swing.JLabel(); 
     descricaoLabel = new javax.swing.JLabel(); 
     estoqueLabel = new javax.swing.JLabel(); 
     valorLabel = new javax.swing.JLabel(); 
     idField = new javax.swing.JTextField(); 
     codigoField = new javax.swing.JTextField(); 
     descricaoField = new javax.swing.JTextField(); 
     estoqueField = new javax.swing.JTextField(); 
     valorField = new javax.swing.JTextField(); 
     saveButton = new javax.swing.JButton(); 
     refreshButton = new javax.swing.JButton(); 
     newButton = new javax.swing.JButton(); 
     deleteButton = new javax.swing.JButton(); 
     jFormattedTextField1 = new javax.swing.JFormattedTextField(); 
     dateRender1 = new br.com.imprimindo.conteudo.itext.DateRender(); 

     FormListener formListener = new FormListener(); 

     org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list, masterTable); 
     org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}")); 
     columnBinding.setColumnName("Id"); 
     columnBinding.setColumnClass(Integer.class); 
     columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${codigo}")); 
     columnBinding.setColumnName("Codigo"); 
     columnBinding.setColumnClass(String.class); 
     columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${ddv}")); 
     columnBinding.setColumnName("Ddv"); 
     columnBinding.setColumnClass(java.time.LocalDate.class); 
     columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${descricao}")); 
     columnBinding.setColumnName("Descricao"); 
     columnBinding.setColumnClass(String.class); 
     columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${estoque}")); 
     columnBinding.setColumnName("Estoque"); 
     columnBinding.setColumnClass(Integer.class); 
     columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${valor}")); 
     columnBinding.setColumnName("Valor"); 
     columnBinding.setColumnClass(Double.class); 
     bindingGroup.addBinding(jTableBinding); 
     jTableBinding.bind(); 
     masterScrollPane.setViewportView(masterTable); 
     if (masterTable.getColumnModel().getColumnCount() > 0) { 
      masterTable.getColumnModel().getColumn(2).setCellRenderer(null); 
     } 

     idLabel.setText("Id:"); 

     codigoLabel.setText("Codigo:"); 

     ddvLabel.setText("Ddv:"); 

     descricaoLabel.setText("Descricao:"); 

     estoqueLabel.setText("Estoque:"); 

     valorLabel.setText("Valor:"); 

     org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.id}"), idField, org.jdesktop.beansbinding.BeanProperty.create("text")); 
     binding.setSourceUnreadableValue("null"); 
     bindingGroup.addBinding(binding); 
     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), idField, org.jdesktop.beansbinding.BeanProperty.create("enabled")); 
     bindingGroup.addBinding(binding); 

     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.codigo}"), codigoField, org.jdesktop.beansbinding.BeanProperty.create("text")); 
     binding.setSourceUnreadableValue("null"); 
     bindingGroup.addBinding(binding); 
     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), codigoField, org.jdesktop.beansbinding.BeanProperty.create("enabled")); 
     bindingGroup.addBinding(binding); 

     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.descricao}"), descricaoField, org.jdesktop.beansbinding.BeanProperty.create("text")); 
     binding.setSourceUnreadableValue("null"); 
     bindingGroup.addBinding(binding); 
     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), descricaoField, org.jdesktop.beansbinding.BeanProperty.create("enabled")); 
     bindingGroup.addBinding(binding); 

     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.estoque}"), estoqueField, org.jdesktop.beansbinding.BeanProperty.create("text")); 
     binding.setSourceUnreadableValue("null"); 
     bindingGroup.addBinding(binding); 
     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), estoqueField, org.jdesktop.beansbinding.BeanProperty.create("enabled")); 
     bindingGroup.addBinding(binding); 

     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.valor}"), valorField, org.jdesktop.beansbinding.BeanProperty.create("text")); 
     binding.setSourceUnreadableValue("null"); 
     bindingGroup.addBinding(binding); 
     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), valorField, org.jdesktop.beansbinding.BeanProperty.create("enabled")); 
     bindingGroup.addBinding(binding); 

     saveButton.setText("Save"); 
     saveButton.addActionListener(formListener); 

     refreshButton.setText("Refresh"); 
     refreshButton.addActionListener(formListener); 

     newButton.setText("New"); 
     newButton.addActionListener(formListener); 

     deleteButton.setText("Delete"); 

     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), deleteButton, org.jdesktop.beansbinding.BeanProperty.create("enabled")); 
     bindingGroup.addBinding(binding); 

     deleteButton.addActionListener(formListener); 

     jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter())); 

     binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.ddv}"), jFormattedTextField1, org.jdesktop.beansbinding.BeanProperty.create("value")); 
     bindingGroup.addBinding(binding); 

     dateRender1.setText("dateRender1"); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); 
     this.setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
        .addGroup(layout.createSequentialGroup() 
         .addContainerGap() 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
          .addGroup(layout.createSequentialGroup() 
           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addComponent(idLabel) 
            .addComponent(codigoLabel) 
            .addComponent(ddvLabel) 
            .addComponent(descricaoLabel) 
            .addComponent(estoqueLabel) 
            .addComponent(valorLabel)) 
           .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addComponent(idField, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE) 
            .addComponent(codigoField, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE) 
            .addComponent(descricaoField, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE) 
            .addComponent(estoqueField, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE) 
            .addComponent(valorField, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE) 
            .addComponent(jFormattedTextField1))) 
          .addComponent(masterScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 595, Short.MAX_VALUE))) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(29, 29, 29) 
         .addComponent(dateRender1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
         .addComponent(newButton) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(deleteButton) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(refreshButton) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(saveButton))) 
       .addContainerGap()) 
     ); 

     layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {deleteButton, newButton, refreshButton, saveButton}); 

     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(masterScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(idLabel) 
        .addComponent(idField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(codigoLabel) 
        .addComponent(codigoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(ddvLabel) 
        .addComponent(jFormattedTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(descricaoLabel) 
        .addComponent(descricaoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(estoqueLabel) 
        .addComponent(estoqueField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(valorLabel) 
        .addComponent(valorField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
          .addComponent(saveButton) 
          .addComponent(refreshButton) 
          .addComponent(deleteButton) 
          .addComponent(newButton)) 
         .addContainerGap()) 
        .addComponent(dateRender1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) 
     ); 

     bindingGroup.bind(); 
    } 

    // Code for dispatching events from components to event handlers. 

    private class FormListener implements java.awt.event.ActionListener { 
     FormListener() {} 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      if (evt.getSource() == saveButton) { 
       Form.this.saveButtonActionPerformed(evt); 
      } 
      else if (evt.getSource() == refreshButton) { 
       Form.this.refreshButtonActionPerformed(evt); 
      } 
      else if (evt.getSource() == newButton) { 
       Form.this.newButtonActionPerformed(evt); 
      } 
      else if (evt.getSource() == deleteButton) { 
       Form.this.deleteButtonActionPerformed(evt); 
      } 
     } 
    }// </editor-fold>       


    @SuppressWarnings("unchecked") 
    private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {            
     entityManager.getTransaction().rollback(); 
     entityManager.getTransaction().begin(); 
     java.util.Collection data = query.getResultList(); 
     for (Object entity : data) { 
      entityManager.refresh(entity); 
     } 
     list.clear(); 
     list.addAll(data); 
    }            

    private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {            
     int[] selected = masterTable.getSelectedRows(); 
     List<br.com.imprimindo.conteudo.itext.Produto> toRemove = new ArrayList<br.com.imprimindo.conteudo.itext.Produto>(selected.length); 
     for (int idx = 0; idx < selected.length; idx++) { 
      br.com.imprimindo.conteudo.itext.Produto p = list.get(masterTable.convertRowIndexToModel(selected[idx])); 
      toRemove.add(p); 
      entityManager.remove(p); 
     } 
     list.removeAll(toRemove); 
    }            

    private void newButtonActionPerformed(java.awt.event.ActionEvent evt) {           
     br.com.imprimindo.conteudo.itext.Produto p = new br.com.imprimindo.conteudo.itext.Produto(); 
     entityManager.persist(p); 
     list.add(p); 
     int row = list.size() - 1; 
     masterTable.setRowSelectionInterval(row, row); 
     masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true)); 
    }           

    private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {           
     try { 
      entityManager.getTransaction().commit(); 
      entityManager.getTransaction().begin(); 
     } catch (RollbackException rex) { 
      rex.printStackTrace(); 
      entityManager.getTransaction().begin(); 
      List<br.com.imprimindo.conteudo.itext.Produto> merged = new ArrayList<br.com.imprimindo.conteudo.itext.Produto>(list.size()); 
      for (br.com.imprimindo.conteudo.itext.Produto p : list) { 
       merged.add(entityManager.merge(p)); 
      } 
      list.clear(); 
      list.addAll(merged); 
     } 
    }           


    // Variables declaration - do not modify      
    private javax.swing.JTextField codigoField; 
    private javax.swing.JLabel codigoLabel; 
    private br.com.imprimindo.conteudo.itext.DateRender dateRender1; 
    private javax.swing.JLabel ddvLabel; 
    private javax.swing.JButton deleteButton; 
    private javax.swing.JTextField descricaoField; 
    private javax.swing.JLabel descricaoLabel; 
    private javax.persistence.EntityManager entityManager; 
    private javax.swing.JTextField estoqueField; 
    private javax.swing.JLabel estoqueLabel; 
    private javax.swing.JTextField idField; 
    private javax.swing.JLabel idLabel; 
    private javax.swing.JFormattedTextField jFormattedTextField1; 
    private java.util.List<br.com.imprimindo.conteudo.itext.Produto> list; 
    private javax.swing.JScrollPane masterScrollPane; 
    private javax.swing.JTable masterTable; 
    private javax.swing.JButton newButton; 
    private javax.persistence.Query query; 
    private javax.swing.JButton refreshButton; 
    private javax.swing.JButton saveButton; 
    private javax.swing.JTextField valorField; 
    private javax.swing.JLabel valorLabel; 
    private org.jdesktop.beansbinding.BindingGroup bindingGroup; 
    // End of variables declaration     
    public static void main(String[] args) { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the form */ 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       JFrame frame = new JFrame(); 
       frame.setContentPane(new Form()); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       int windowWidth = 615; 
       int windowHeight = 337; 
       java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 
       frame.setBounds((screenSize.width - windowWidth)/2, (screenSize.height - windowHeight)/2, windowWidth, windowHeight); 
       frame.setLocationRelativeTo(null); 

       frame.pack(); 
       frame.setVisible(true); 
      } 
     }); 
    } 

} 

Это Дата Рендер:

package br.com.imprimindo.conteudo.itext; 

import java.awt.Component; 
import java.text.SimpleDateFormat; 
import java.time.LocalDate; 
import java.util.Date; 
import javax.swing.JTable; 
import javax.swing.table.DefaultTableCellRenderer; 


public class DateRender extends DefaultTableCellRenderer { 

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 

    public Component getTableCellRendererComponent(JTable table, Object value, 
      boolean isSelected, boolean hasFocus, int row, int column) { 

     super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
     if (value instanceof LocalDate) { 
      this.setText(sdf.format((LocalDate) value)); 
     } 
     return this; 
    } 

} 

это проект в github
В филиале мастер он работает нормально, но проблема, это в отрасли под названием «LOCALDATE»!
При нажатии на ФОТ masterTable для LOD данных для jTextfileds ..

+2

Пожалуйста включите ваш код. – user2004685

+0

@ user2004685 Спасибо –

ответ

1

Вы получаете эту ошибку из-за этой линии:

this.setText(sdf.format((LocalDate) value)); 

Вы не можете использовать SimpleDateFormat непосредственно LocalDate. Сначала вам нужно будет преобразовать LocalDate в Date, а затем использовать SimpleDateFormat с преобразованным объектом Date.

Вот фрагмент кода из @Sotirios ответа дал here:

LocalDate localDate = ... ; 
Instant instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant(); 
Date res = Date.from(instant); 

Более подробная информация доступна здесь: http://blog.progs.be/542/date-to-java-time

0

Как пользователь user2004685 сказал, вы не можете использовать SimpleDateFormat непосредственно LocalDate. Самое простое решение заключается в преобразовании LocalDate в java.util.Date через java.sql.Date:

java.util.Date date = java.sql.Date.valueOf(localDate); 
this.setText(sdf.format(date)); 

Ссылки по теме: