JTable não mostra todos os registros da tabela

Pessoal

È que todas as tabelas que fiz na aplicação está apresentando o mesmo problema de que não está mostrando todos os registros vindos da TableModel. Parece que a JTable não está fazendo o Scroll. Tenho no banco 58 registros digitados e quando mostro na jTable só aparecem 27 registros. Não sei o q tá acontecendo, alguem já se deparou com esse problema?
Já verifiquei a TableModel e o meu Dao e eles estão trazendo todos os 58 registros:
Vou postar a aplicação e o Tablemodel.

A Aplicação e o TableModel:

[code]
private void preencheTbm(){
PrecoDao dao = null ;
try {
dao = new PrecoDao();
PrecoTableModel minha = new PrecoTableModel(dao.listAll());
jTPreco.setModel(minha);
jTPreco.setPreferredSize(new java.awt.Dimension(800, 434));
defineRenderers();
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;
int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
JScrollPane scroller = new JScrollPane();
jScrollPane1.add(scroller);
jScrollPane1.setViewportView(jTPreco);

    } catch (SQLException ex) {
        Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
    }
    try {
        dao.closeConnection();
    } catch (SQLException ex) {
        Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
    }
}

package TableModels;

import java.util.ArrayList;
import java.util.List;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.table.AbstractTableModel;
import modelo.Preco;

/**
*

  • @author Octacilio
    */
    public class PrecoTableModel extends AbstractTableModel {

    private static final long serialVersionUID = 1L;

    /* Lista de Preco que representam as linhas. */
    private List linhas;

    /* Array de Strings com o nome das colunas. /
    private String[] colunas = new String[]{
    " Id.", "Tipo de Tabela ", “Id.”, "Descrição da Prótese “, " Id.”, " Valor "};
    /
    Cria um PrecoTableModel vazio. */
    public PrecoTableModel() {
    linhas = new ArrayList();
    }

    /* Cria um PrecoTableModel carregado com

    • a lista de Preco especificada. */
      public PrecoTableModel(List listaprecos) {
      //System.out.println(“passei na PrecoTableModel!”);
      this.linhas = new ArrayList(listaprecos);
      //System.out.println(“linhas=” + linhas.size());

/* linhas = new ArrayList(listaprecos);
for (Preco p: linhas){
System.out.println(" Id. Tipopreco=" + (p.getIdtipopreco().toString()));
System.out.println(" Nome Tipo=" + (p.getDescricao()));
System.out.println(" Id.Protese=" + (p.getIdprotese().toString()));
System.out.println(“Nome Protese=” + (p.getNomeprotese())); /
/
System.out.println(" Id.=" + (p.getId().toString()));
/* System.out.println(“Preco=” + (p.getPreco()));
} */
}

/* Retorna a quantidade de colunas. */  
@Override  
public int getColumnCount() {  
    // Esta retornando o tamanho do array "colunas".  

//System.out.println(“tamanho da coluna=” +colunas.length);
return colunas.length;
}

/* Retorna a quantidade de linhas. */  
@Override  
public int getRowCount() {  
    // Retorna o tamanho da lista de Preco.  

//System.out.println(“linhas=” + linhas.size());
return linhas.size();
}

/* Retorna a quantidade de linhas. */  

@Override  
public String getColumnName(int columnIndex) {  
    // Retorna o conteudo do Array que possui o nome das colunas 

//System.out.println(“nome da coluna=” +colunas[columnIndex]);
return colunas[columnIndex];
}

;  

/* Retorna a classe dos elementos da coluna especificada.
* Este método é usado pela JTable na hora de definir o editor da célula. */
@Override
public Class<?> getColumnClass(int columnIndex) {
// Retorna a classe referente a coluna especificada.
// Aqui é feito um switch para verificar qual é a coluna
// e retornar o tipo adequado. As colunas são as mesmas
// que foram especificadas no array “colunas”.
switch (columnIndex) {
case 0: // Primeira coluna é o nome, que é uma String.
return Integer.class;
case 1: // Segunda coluna é o telefone, que também é uma String…
return String.class;
case 2: // Terceira coluna é a data de cadastro,
// apesar de ser do tipo Calendar,
// estou retornando Degerate por causa da formatação.
return Integer.class;
case 3: // Quarta coluna é a mensalidade, um double.
return String.class;
case 4: // Quarta coluna é a mensalidade, um double.
return Integer.class;
case 5: // Quarta coluna é a mensalidade, um double.
return Double.class;
default:
// Se o índice da coluna não for válido, lança um
// IndexOutOfBoundsException (Exceção de índice fora dos limites).
// Não foi necessário verificar se o índice da linha é inválido,
// pois o próprio ArrayList lança a exceção caso seja inválido.
throw new IndexOutOfBoundsException(“ERRO. Coluna fora do limite - ClassPreco!”);
}
}

;  



@Override  
public Object getValueAt(int rowIndex, int columnIndex) {  
        Preco preco = linhas.get(rowIndex);  

//System.out.println("Passou getValueAt "+linhas.get(rowIndex).toString());
// Retorna o campo referente a coluna especificada.
// Aqui é feito um switch para verificar qual é a coluna
// e retornar o campo adequado. As colunas são as mesmas
// que foram especificadas no array “colunas”.
switch (columnIndex) {

        // Seguindo o exemplo: "Tipo","Data de Cadastro", "Nome", "Idade"};  
        case 0:  
            return preco.getIdtipopreco();  
        case 1:  
            return preco.getDescricao();  
        case 2:  
            return preco.getIdprotese();  
        case 3:  
            return preco.getNomeprotese();  
        case 4:  
            return preco.getId();  
        case 5:  
            return preco.getPreco();  
        default:  
            // Isto não deveria acontecer...  
            throw new IndexOutOfBoundsException("Erro - columnIndex fora de limite GetPreco!");  
    }  
}  

@Override
//modifica na linha e coluna especificada
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Preco Preco = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado

 switch (columnIndex) { // Seta o valor do campo respectivo  
     case 0:  

// Preco.setGrupoPreco(aValue.toString());
/* System.out.println(“Id.= " + setGrupoPreco+”");
System.out.println(“Nome Preco=” + (Preco.getNome()));
System.out.println(" Prazo=" + (Preco.getPrazo().toString()));
// System.out.println(" Id. Grupo=" + (Preco.getGrupoPreco().getId()));
System.out.println(" Nome Grupo=" + (g.getNomegrupo()));*/
case 1:
// Preco.setGrupoPreco(aValue.toString());
case 2:
// Preco.setId(aValue.toString());
case 3:
// Preco.setNome(aValue.toString());
case 4:
// Preco.setPrazo(aValue.toString());
case 5:
// Preco.setPrazo(aValue.toString());

     default:  
         // Isto não deveria acontecer...               
 }  
 fireTableCellUpdated(rowIndex, columnIndex);  
 }  

//modifica na linha especificada  
public void setValueAt(Preco aValue, int rowIndex) {  
    Preco preco = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado  

    preco.setPreco(rowIndex);  

    fireTableCellUpdated(rowIndex, 5);  

}  
;  


;  


@Override  
public boolean isCellEditable(int rowIndex, int columnIndex) {  
    return false;  
}  


public Preco getPreco(int indiceLinha) {  
    return linhas.get(indiceLinha);  
}  



/* Adiciona um registro. */  
public void addPreco(Preco m) {  
    // Adiciona o registro.  
    linhas.add(m);  


    int ultimoIndice = getRowCount() - 1;  

    fireTableRowsInserted(ultimoIndice, ultimoIndice);  
}  

/* Remove a linha especificada. */  
public void removePreco(int indiceLinha) {  
    linhas.remove(indiceLinha);  

    fireTableRowsDeleted(indiceLinha, indiceLinha);  
}  

/* Adiciona uma lista de Preco ao final dos registros. */  
public void addListaDePreco(List<Preco> Preco) {  
    // Pega o tamanho antigo da tabela.  
    int tamanhoAntigo = getRowCount();  

    // Adiciona os registros.  
    linhas.addAll(Preco);  

    fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);  
}  

/* Remove todos os registros. */  
public void limpar() {  
    linhas.clear();  


    fireTableDataChanged();  
}  

/* Verifica se este table model esta vazio. */  
public boolean isEmpty() {  
    return linhas.isEmpty();  
}

public void setVisible(boolean b) {
    
}

// retorna a largura da coluca
/* public Object getColumn(int i) {
switch (i) { // Seta o valor do campo respectivo
case 0:
// return colunas[columnIndex].setPreferredWidth(200);
case 1:
// Preco.setGrupoPreco(aValue.toString());
case 2:
// Preco.setId(aValue.toString());
case 3:
// Preco.setNome(aValue.toString());
case 4:
// Preco.setPrazo(aValue.toString());

     default:  
         // Isto não deveria acontecer...               
 }  

// fireTableCellUpdated( columnIndex);

}*/

}

[/code].

posta o codigo onde vc adiciona a JTable no seu JFrame, vc ta colocando ela dentro do scroll pane?

JScrollPane scrollPane = new JScrollPane(suaJTable);
container.add(scrollPane);

Ola yurifw

Sempre tive duvida em relação a isso, não sei te responder mas me parece que meu codigo que representa esta sua observação sobre a JTable está abaixo, é só esse.
Pelo que sei, a TableModel serve para exeibir as informações do banco de dados e a JTable funciona como um controller fazendo Scroll e tudo mais.
O codigo que tenho na aplicação é esse, está funcionando, só não está mostrando todos os registros do banco.

    private void preencheTbm(){
        PrecoDao dao = null ;
        try {
            dao = new PrecoDao();
            PrecoTableModel minha = new PrecoTableModel(dao.listAll()); 
            jTPreco.setModel(minha);  
            jTPreco.setPreferredSize(new java.awt.Dimension(800, 434));  
            defineRenderers();
            int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;
           int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
            JScrollPane scroller = new JScrollPane(); 
            jScrollPane1.add(scroller);
            jScrollPane1.setViewportView(jTPreco);
/* Se tentar colocar o q vc colocou na linha abaixo que é a JTable dentro do container, ele dá uma mensagem de erro dizendo que (non-static method add(Component) cannot be referenced from a static context)  jIFPrecos é a minha JInternalFrame que é o meu container.
            jIFPrecos.add(jScrollPane1);  */
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Grato.

Pessoal

Estou tentando entender o q está acontecendo com a minha JTable e não estou conseguindo entender porque:

  1. Fiz uma lista de todos os registros do banco postgres. Ok tenho 58 registros
  2. Fiz uma lista da geração da TableModel . Ok tenho 58 registros.
  3. Fiz uma lista de saida da geração dop Dao. Ok tenho 58 registros.
  4. Na aplicação quando mostro o Relatório de Preços. Ok tenho 58 registros.

Quando mostro a aplicação na JTable só aparece 27 registros. Não sei se é problema do ScrollPane só vai até os 27 registros. O que será que está acontecendo?

Vou postar meu codigo da aplicação de preço abaixo:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fontes.Cadastros;

import TableModels.PrecoTableModel;
import TableModels.ProteseTableModel;
import dao.Dao;
import dao.FichasDao;
import dao.PrecoDao;
import dao.ProteseDao;
import dao.TipodePrecoDao;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.InputStream;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import modelo.Fichas;
import modelo.Preco;
import modelo.Protese;
import modelo.TipodePreco;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
import util.Formato;

/**
 *
 * @author Octacilio
 */

public class jIFPrecos extends javax.swing.JInternalFrame {

    /**
     * Creates new form jIFPrecos
     */
    public static JDialogProteseEspecial jdialogproteseespecial;
    public static String proteseespecialdialog = "";
    private String msg;
    private BigDecimal valor;
    private boolean check_OK = false;
    private boolean duplicidade = false;
    private String precos;
    private JScrollPane cScroll;  
    private boolean incluir = false;
    private String tipoPreco;
    private String protese;
    Formato            formato            = new Formato();
    
    Preco p = new Preco();
    TipodePreco g = new TipodePreco();
    Protese e = new Protese();
    Fichas fichas = new Fichas();
    private ArrayList<Fichas> listaFichas = new ArrayList<>();
    private ArrayList<TipodePreco> listaTipodePreco= new ArrayList<>();
    private ArrayList<Protese> listaProtese= new ArrayList<Protese>();
    private ArrayList<Preco> listaPreco = new ArrayList<Preco>();
    private boolean achouFilhos;
    private JasperReport jasperReport;
    private PrecoTableModel model;
//    DecimalFormat format = new DecimalFormat();  
//    format.setCurrency(Currency.getInstance(new Locale("pt", "BR")));  
    public jIFPrecos() {
        setResizable(false); //configura se o frame se será redimensionável uo não
        initComponents();
        java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();  
        Dimension scrSize = toolkit.getScreenSize(); 
//        System.out.println("size=" + scrSize); 
        
//        setSize(scrSize.width,scrSize.height); //configura tamanho do frame
        setSize(1000,670); //configura tamanho do frame
        check_OK=false;
    // Colocando enter para pular de campo  
//    HashSet conj = new HashSet(this.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));  
//    conj.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0));  
//    this.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj);  
  
        limpaCampos();
        cmbTipodePreco.requestFocus();
    }
    /**
     * 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() {

        jPanel3 = new javax.swing.JPanel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        txtIdProtese = new javax.swing.JTextField();
        txtIdTipodePreco = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        txtId = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        txtPreco = new javax.swing.JTextField();
        jPanel5 = new javax.swing.JPanel();
        jbIncluir = new javax.swing.JButton();
        jbAlterar = new javax.swing.JButton();
        jbExcluir = new javax.swing.JButton();
        jbPesquisar = new javax.swing.JButton();
        jbLimpar = new javax.swing.JButton();
        jbFechar = new javax.swing.JButton();
        jbImprimir = new javax.swing.JButton();
        jbFiltrarporTipo = new javax.swing.JButton();
        jBProteseEspecial = new javax.swing.JButton();
        cmbProtese = new componentes.UJComboBox();
        cmbTipodePreco = new componentes.UJComboBox();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTPreco = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Cadastro de Preço");
        setPreferredSize(new java.awt.Dimension(925, 729));

        jPanel3.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jPanel3.setPreferredSize(new java.awt.Dimension(915, 222));
        jPanel3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel7.setText("Id.");
        jPanel3.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 40, -1));

        jLabel8.setText("Protese");
        jPanel3.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 50, 115, -1));

        txtIdProtese.setEditable(false);
        txtIdProtese.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txtIdProtese.setEnabled(false);
        jPanel3.add(txtIdProtese, new org.netbeans.lib.awtextra.AbsoluteConstraints(12, 74, 45, -1));

        txtIdTipodePreco.setEditable(false);
        txtIdTipodePreco.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txtIdTipodePreco.setEnabled(false);
        txtIdTipodePreco.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtIdTipodePrecoKeyPressed(evt);
            }
        });
        jPanel3.add(txtIdTipodePreco, new org.netbeans.lib.awtextra.AbsoluteConstraints(12, 22, 43, -1));

        jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel9.setText("Id.");
        jPanel3.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(12, 2, 40, -1));

        jLabel10.setText("Tipo de Tabela");
        jPanel3.add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(71, 2, 173, -1));

        jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel11.setText("Id.");
        jPanel3.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 100, 40, -1));

        txtId.setEditable(false);
        txtId.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txtId.setEnabled(false);
        jPanel3.add(txtId, new org.netbeans.lib.awtextra.AbsoluteConstraints(12, 122, 45, -1));

        jLabel12.setText("Preço");
        jPanel3.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(71, 102, 115, -1));

        txtPreco.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txtPreco.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                txtPrecoMouseExited(evt);
            }
        });
        txtPreco.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                txtPrecoFocusGained(evt);
            }
        });
        jPanel3.add(txtPreco, new org.netbeans.lib.awtextra.AbsoluteConstraints(71, 122, 177, -1));

        jPanel5.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

        jbIncluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/novo.jpg"))); // NOI18N
        jbIncluir.setText("Incluir");
        jbIncluir.setToolTipText("Incluir novo Preço");
        jbIncluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbIncluirActionPerformed(evt);
            }
        });
        jbIncluir.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jbIncluirFocusLost(evt);
            }
        });

        jbAlterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/cadastrar.jpg"))); // NOI18N
        jbAlterar.setText("Alterar");
        jbAlterar.setToolTipText("Alterar Preço");
        jbAlterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbAlterarActionPerformed(evt);
            }
        });

        jbExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/deleteFile.jpg"))); // NOI18N
        jbExcluir.setText("Excluir");
        jbExcluir.setToolTipText("Excluir Preço");
        jbExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbExcluirActionPerformed(evt);
            }
        });

        jbPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/pesquisar.jpg"))); // NOI18N
        jbPesquisar.setToolTipText("Preencher dados de Preço");
        jbPesquisar.setIconTextGap(2);
        jbPesquisar.setLabel("Dados");
        jbPesquisar.setMaximumSize(new java.awt.Dimension(75, 23));
        jbPesquisar.setMinimumSize(new java.awt.Dimension(65, 23));
        jbPesquisar.setName("Pesquisar"); // NOI18N
        jbPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbPesquisarActionPerformed(evt);
            }
        });

        jbLimpar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/remove.jpg"))); // NOI18N
        jbLimpar.setText("Limpar");
        jbLimpar.setToolTipText("Limpar dados de Preço");
        jbLimpar.setIconTextGap(2);
        jbLimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbLimparActionPerformed(evt);
            }
        });

        jbFechar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/fechar_btn.jpg"))); // NOI18N
        jbFechar.setText("Fechar");
        jbFechar.setToolTipText("Sair");
        jbFechar.setIconTextGap(2);
        jbFechar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbFecharActionPerformed(evt);
            }
        });

        jbImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/imprimir_128x128~1.png"))); // NOI18N
        jbImprimir.setText("Imprimir");
        jbImprimir.setToolTipText("Imprimir Relatório");
        jbImprimir.setIconTextGap(1);
        jbImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbImprimirActionPerformed(evt);
            }
        });

        jbFiltrarporTipo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ProjetoSAFP/imagens/filter.jpg"))); // NOI18N
        jbFiltrarporTipo.setText("Filtrar por Tipo de Preço");
        jbFiltrarporTipo.setToolTipText("Escolher Item de preço e depois clicar-me.");
        jbFiltrarporTipo.setIconTextGap(2);
        jbFiltrarporTipo.setMaximumSize(new java.awt.Dimension(75, 23));
        jbFiltrarporTipo.setMinimumSize(new java.awt.Dimension(65, 23));
        jbFiltrarporTipo.setName("Pesquisar"); // NOI18N
        jbFiltrarporTipo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbFiltrarporTipoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jbIncluir)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jbAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jbExcluir)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jbPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jbLimpar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jbFechar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jbImprimir)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jbFiltrarporTipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(51, Short.MAX_VALUE))
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jbExcluir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jbPesquisar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jbLimpar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jbFechar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jbImprimir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jbFiltrarporTipo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addComponent(jbAlterar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jbIncluir))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel3.add(jPanel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(12, 153, -1, -1));

        jBProteseEspecial.setText("Prótese Especial");
        jBProteseEspecial.setToolTipText("Fazer uma copia de todas as próteses do cadastro de preço padrão.");
        jBProteseEspecial.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBProteseEspecialActionPerformed(evt);
            }
        });
        jPanel3.add(jBProteseEspecial, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 80, 160, 30));

        cmbProtese.setEditable(true);
        cmbProtese.setAutocompletar(true);
        cmbProtese.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmbProteseActionPerformed(evt);
            }
        });
        jPanel3.add(cmbProtese, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 70, 520, -1));

        cmbTipodePreco.setEditable(true);
        cmbTipodePreco.setAutocompletar(true);
        cmbTipodePreco.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmbTipodePrecoActionPerformed(evt);
            }
        });
        jPanel3.add(cmbTipodePreco, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 20, 520, -1));

        jTPreco.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4", "Tetle 5", "Title 6"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTPreco);
        jTPreco.getColumnModel().getColumn(0).setResizable(false);
        jTPreco.getColumnModel().getColumn(1).setResizable(false);
        jTPreco.getColumnModel().getColumn(2).setResizable(false);
        jTPreco.getColumnModel().getColumn(3).setResizable(false);
        jTPreco.getColumnModel().getColumn(4).setResizable(false);
        jTPreco.getColumnModel().getColumn(5).setResizable(false);

        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)
                    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, 899, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane1)
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 238, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void txtIdTipodePrecoKeyPressed(java.awt.event.KeyEvent evt) {                                            
        // TODO add your handling code here:
    }                                           

    private void jbIncluirActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        incluir = true;
        checaCampos();
        if (!check_OK) {
            return;
        }
        PrecoDao dao = null;
        try {
            dao = new PrecoDao();
            listaPreco = (ArrayList<Preco>) dao.listAll();
            for (Preco pre : listaPreco) {
                if (pre instanceof Preco) {
                    Preco preco = (Preco) pre;

                    if (txtIdTipodePreco.getText().equals(preco.getIdtipopreco()) && txtIdProtese.getText().equals(preco.getIdprotese())) {
//                        System.out.println("Registro duplicado!");
                        msg = "Registro de Preço duplicado!";
                        mensagemErro(msg);
                        txtPreco.requestFocus();
                        return;
                    }
                }
            }

        } catch (SQLException ex) {
            Logger.getLogger(jIFProtese.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFProtese.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
//        HibernateUtil sessaoDao = new HibernateUtil();
            checaCampos();
            if (!check_OK) {
                return;
            }
            editaCampos();
            PrecoDao preco = new PrecoDao();
            preco.save(p);
        JOptionPane.showMessageDialog(null, "Preço INCLUIDO com sucesso!");
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        limpaCampos();
        txtPreco.requestFocus();
    }                                         

    private void jbIncluirFocusLost(java.awt.event.FocusEvent evt) {                                    
        // TODO add your handling code here:
    }                                   

    private void jbAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        incluir = false;
        checaCampos();
        if (!check_OK) {
            return;
        }

        Dao<Preco> dao = null;
        try {
            editaCampos();
//            p.setId(Integer.parseInt(txtIdProtese.getText()));
            dao = new PrecoDao();
            dao.update(p);
        JOptionPane.showMessageDialog(null, "Preço ALTERADO com sucesso!");
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        limpaCampos();
        txtPreco.requestFocus();
    }                                         

    private void jbExcluirActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        incluir = false;
        checaCampos();
        if (!check_OK) {return;}
        achouFilhos = false;
        verificaPaternidade("preco", Integer.parseInt(txtId.getText()));
        if(!achouFilhos){
            Object[] options = {"Sim", "Cancelar"};
            int i =  JOptionPane.showOptionDialog(null,
                 "Deseja mesmo excluir o registro?", "Atenção",
                 JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
                 options, null);
            if (i == JOptionPane.YES_OPTION) {
                Dao<Preco> dao = null;
                try {
                    editaCampos();
                    dao = new PrecoDao();
                } catch (SQLException ex) {
                    Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
                }
                try {
                    p.setId(Integer.parseInt(txtId.getText()));
                    dao.delete(p);
                   JOptionPane.showMessageDialog(null, "Preço EXCLUIDO com sucesso!");
                } catch (SQLException ex) {
                    Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
                }
                try {
                    dao.closeConnection();
                } catch (SQLException ex) {
                    Logger.getLogger(jIFDentista.class.getName()).log(Level.SEVERE, null, ex);
                }
            }else{
                 JOptionPane.showMessageDialog(null, "Exclusão Cancelada");
            }
        }else{
            JOptionPane.showMessageDialog(null, "Existem Fichas para Preço. Exclusão Cancelada");
        }
        limpaCampos();
        txtPreco.requestFocus();
    }                                         

    private void jbPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        limpaCampos();
        preencheTbm();
    }                                           

    private void jbLimparActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        limpaCampos();
    }                                        

    private void jbFecharActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        this.dispose();
    }                                        

    private void jbImprimirActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        PrecoDao dao = null;
        try {
            dao = new PrecoDao();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
        try {
            listaPreco = (ArrayList<Preco>) dao.listAll();

            java.sql.Connection con = jdbc.ConnectionFactory.getConnection(
                    "jdbc:postgresql://localhost:5432/Labo",
                    "postgres",
                    "admin9090");
            HashMap parametros = new HashMap();
            try {
                InputStream jasperFile = Thread.currentThread().getClass().getResourceAsStream("/fontes/Relatorios/rptPreco.jasper");  
                jasperReport = (JasperReport) JRLoader.loadObject( jasperFile );  
                JasperPrint jp = JasperFillManager.fillReport(jasperReport, parametros, con);
//                JasperExportManager.exportReportToPdfFile(jp, "Precopornome.pdf");
                JasperViewer jrv = new JasperViewer(jp, false);
                jrv.setVisible(true);
            } catch (JRException ex) {
                Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
    }                                          

    private void jbFiltrarporTipoActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        // TODO add your handling code here:
 //       System.out.println("Botão TipoPreço=" + tipoPreco);
        PrecoDao dao = null ;
        try {
            dao = new PrecoDao();
            PrecoTableModel minha = new PrecoTableModel(dao.findbyfiltro(tipoPreco,"","")); 
            jTPreco.setModel(minha);  
            jTPreco.setPreferredSize(new java.awt.Dimension(800, 434));  
            defineRenderers();
//            int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS;
//            int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
//            JScrollPane scroller = new JScrollPane(); 
//            jScrollPane1.setViewportView(scroller);  
            int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
            JScrollPane scroller = new JScrollPane(); 
            jScrollPane1.add(scroller);
            jScrollPane1.setViewportView(jTPreco);

        } catch (SQLException ex) {
            Logger.getLogger(jIFProtese.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFProtese.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                                

    private void txtPrecoFocusGained(java.awt.event.FocusEvent evt) {                                     
        // TODO add your handling code here:
        txtPreco.setText("");
    }                                    

    private void txtPrecoMouseExited(java.awt.event.MouseEvent evt) {                                     
        // TODO add your handling code here:
    }                                    

    private void jBProteseEspecialActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        // TODO add your handling code here:
        MostrarJDialogProteseEspecial();
//       if((!proteseespecialdialog.equals(null)) && (!proteseespecialdialog.equals(""))) { 
            preencheCmbProtese();
            preencheCmbTipodePreco();
            jTPreco.setEnabled(true);
            preencheTbm();
//        cmbPaciente.setSelectedItem(pacientedialog.toUpperCase());
//       }
    }                                                 

    private void cmbProteseActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:

        /**
         * para retornar o objeto utilise o método getSelectedObject
         * para retornar o nome utilize o método getSelectedItem
         */
//        Object protese = (Object)getuJComboBox1();
//        uJTextField1.setText(String.valueOf(getuJComboBox1().getId()));
//        System.out.println("passei na nova combo="+String.valueOf(getuJComboBox1().getId()));
//        return (Protese) uJComboBox1.getSelectedObject();
//        return (Protese) uJComboBox1.getSelectedItem();
        String cmb = (String)cmbProtese.getSelectedItem();
        cmbProtese.setVisible(true);
        cmbProtese.setSelectedItem(cmb);
        protese = (String)cmbProtese.getSelectedItem();
        ProteseDao dao = null;
        try {
            dao = new ProteseDao();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
        try {
            listaProtese = (ArrayList<Protese>) dao.findbyname(protese);
            for (Protese prot : listaProtese) {
               if(prot instanceof Protese){  
                       //aqui é feito um cast  
                    Protese pro = (Protese)prot;  
                   //faz verificação se for o caso. 
                  if (pro.getNome().equals(protese)) {
                     String txtidpro = (String.valueOf(pro.getId()));
                     txtIdProtese.setText(txtidpro);
                  } 
               }
            }
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
        
    }                                          

    private void cmbTipodePrecoActionPerformed(java.awt.event.ActionEvent evt) {                                               
        // TODO add your handling code here:
        String cmb = (String)cmbTipodePreco.getSelectedItem();
        cmbTipodePreco.setVisible(true);
        cmbTipodePreco.setSelectedItem(cmb);
        tipoPreco = (String)cmbTipodePreco.getSelectedItem();
        TipodePrecoDao dao = null;
        try {
            dao = new TipodePrecoDao();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
        try {
            listaTipodePreco = (ArrayList<TipodePreco>) dao.findbyname(tipoPreco);
            for (TipodePreco prc : listaTipodePreco) {
               if(prc instanceof TipodePreco){  
                       //aqui é feito um cast  
                    TipodePreco pr = (TipodePreco)prc;  
                   //faz verificação se for o caso. 
                   String txtidtip = (String.valueOf(pr.getId()));
                   txtIdTipodePreco.setText(txtidtip);
               }
            }
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
    }                                              
    private void mensagemErro(String msg){
       JOptionPane.showMessageDialog(
               null,
               msg,
               "Aviso! ",
               JOptionPane.WARNING_MESSAGE); 
    }
    private void MostrarJDialogProteseEspecial() {
        jTPreco.setEnabled(false);
        jdialogproteseespecial = new JDialogProteseEspecial(this, true);
//        jdialogproteseespecial.s
        jdialogproteseespecial.setVisible(true);
    }
    // Variables declaration - do not modify                     
    private componentes.UJComboBox cmbProtese;
    private componentes.UJComboBox cmbTipodePreco;
    private javax.swing.JButton jBProteseEspecial;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTPreco;
    private javax.swing.JButton jbAlterar;
    private javax.swing.JButton jbExcluir;
    private javax.swing.JButton jbFechar;
    private javax.swing.JButton jbFiltrarporTipo;
    private javax.swing.JButton jbImprimir;
    private javax.swing.JButton jbIncluir;
    private javax.swing.JButton jbLimpar;
    private javax.swing.JButton jbPesquisar;
    private javax.swing.JTextField txtId;
    private javax.swing.JTextField txtIdProtese;
    private javax.swing.JTextField txtIdTipodePreco;
    private javax.swing.JTextField txtPreco;
    // End of variables declaration                   
    private void limpaCampos()
    {
        preencheCmbTipodePreco(); 
        preencheCmbProtese(); 
        txtIdProtese.setText    ("");
//        txtIdTipodePreco.setText    ("");
        txtPreco.setText ("");
        txtId.setText("");
//        cmbTipodePreco.setSelectedItem("");
        cmbProtese.setSelectedItem("");
        cmbTipodePreco.setEnabled(true); 
        cmbProtese.setEnabled(true); 
        preencheTbm();
        cmbTipodePreco.requestFocus();
    }
   private JTable getTblPreco() {
		if (jTPreco == null) {
			jTPreco = new JTable();

			jTPreco.setModel(new PrecoTableModel());
		}
		return jTPreco;
	}
	
	private PrecoTableModel getModel() {
		if (model == null) {
			model = (PrecoTableModel) getTblPreco().getModel();
		}
		return model;
	}
    
    private void preencheTbm(){
        PrecoDao dao = null ;
        try {
            dao = new PrecoDao();
            PrecoTableModel minha = new PrecoTableModel(dao.listAll()); 
            jTPreco.setModel(minha);  
            jTPreco.setPreferredSize(new java.awt.Dimension(800, 434));  
            defineRenderers();
            int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;
            int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
            JScrollPane scroller = new JScrollPane(); 
            jScrollPane1.add(scroller);
            jScrollPane1.setViewportView(jTPreco);
           
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void checaCampos(){
        check_OK=false; 
        if (!incluir){
            if (txtId.getText().equals("")|| (txtId.getText().equals("0"))){
                msg = " Identificador de Preço é Obrigotório!";
                mensagemErro(msg);
                txtPreco.requestFocus();
                return;
            }
        }
        if (txtPreco.getText().equals("")){
            msg = " Preco é Obrigotório!";
            mensagemErro(msg);
            txtPreco.requestFocus();
            return;
        }
        if (txtIdTipodePreco.getText().equals("")|| (txtIdTipodePreco.getText().equals("0"))){
            msg = " Tipo de Preço é Obrigotório!";
            mensagemErro(msg);
            cmbTipodePreco.requestFocus();
            return;
        }
        if (txtIdProtese.getText().equals("")|| (txtIdProtese.getText().equals("0"))){
            msg = " Prótese é Obrigotória!";
            mensagemErro(msg);
            cmbProtese.requestFocus();
            return;
        }
        boolean valorvalido = formato.validarDinheiro(txtPreco.getText());
        if (!valorvalido){
            msg = " Preço invalido!";
            mensagemErro(msg);
            txtPreco.requestFocus();
            return;
        }
        
        if (incluir){
            duplicidade = false;
            pesquisaDuplicidade(Integer.parseInt(txtIdTipodePreco.getText()), Integer.parseInt(txtIdProtese.getText()));
            if (!duplicidade){
                check_OK=true;
            }
        }else{    
            check_OK=true;
        }
    }
    private void editaCampos(){
        String spreco = null;
        spreco = (txtPreco.getText());
        spreco = spreco.replace(",", ".");
        valor = new BigDecimal(spreco);
        p.setPreco     (valor);
        p.setIdprotese  (Integer.parseInt(txtIdProtese.getText()));
        p.setIdtipopreco (Integer.parseInt(txtIdTipodePreco.getText()));
        if (!incluir){
            p.setId         (Integer.parseInt(txtId.getText()));
        }
    }

    public void setPosicao() {
        Dimension d = this.getDesktopPane().getSize();
        this.setLocation((d.width - this.getSize().width) / 2,
        (d.height - this.getSize().height) / 2);
    }
    public void keyPressed(KeyEvent e) {
     int key = e.getKeyCode();
//     if (key == KeyEvent.VK_ENTER) {
//        Toolkit.getDefaultToolkit().beep(); 
//        System.out.println("ENTER pressed");
//        }
    }
    private void preencheCmbTipodePreco(){  
              
       //Remove todos os itens do model ComboBox  
        cmbTipodePreco.clear();
        TipodePrecoDao dao = null;
        try {
            dao = new TipodePrecoDao();
        //Aqui usando Generics porque o metodo retorna um ArrayList de object's e preciso acessar os metodos do bean  
            listaTipodePreco = (ArrayList<TipodePreco>) dao.listAll();
        } catch (SQLException ex) {
            Logger.getLogger(jIFTipodePreco.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFTipodePreco.class.getName()).log(Level.SEVERE, null, ex);
        }      
      
       //O método addItem adiciona objetos ao model do ComboBox  
       //Esse getNome do objeto c retorna uma String  
       for (TipodePreco t : listaTipodePreco) {
//                 jComboBox1.addItem(t.getId());
          cmbTipodePreco.addItem(t.getDescricao(), p);
       }  
   }

    private void preencheCmbProtese() {
       //Remove todos os itens do model ComboBox  
        cmbProtese.clear();
        Protese e = new Protese();
        ProteseDao dao = null;
        try {
            dao = new ProteseDao();
        //Aqui usando Generics porque o metodo retorna um ArrayList de object's e preciso acessar os metodos do bean  
            listaProtese = (ArrayList<Protese>) dao.listAll();
        } catch (SQLException ex) {
            Logger.getLogger(jIFProtese.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException ex) {
            Logger.getLogger(jIFProtese.class.getName()).log(Level.SEVERE, null, ex);
        }      
       //O método addItem adiciona objetos ao model do ComboBox  
       //Esse getNome do objeto c retorna uma String  
       for (Protese t : listaProtese) {
        /**
         * observe que aqui é setado o nome da pessoa como descrição
         * e o próprio objeto pessoa para se buscado depois
        */
          cmbProtese.addItem(t.getNome(), p);
       }  
    }

    /* redimeninar a largura da coluna */  
    private void defineRenderers() {  
        DefaultTableCellRenderer rendererCentro = new DefaultTableCellRenderer();  
        rendererCentro.setHorizontalAlignment(SwingConstants.CENTER);  
        DefaultTableCellRenderer rendererDireita = new DefaultTableCellRenderer();  
        rendererDireita.setHorizontalAlignment(SwingConstants.RIGHT);  
        DefaultTableCellRenderer rendererEsquerda = new DefaultTableCellRenderer();  
        rendererEsquerda.setHorizontalAlignment(SwingConstants.LEFT);  
      
//        jTPrecoableHeader header = jTable.getTableHeader();   
//        header.setPreferredSize(new Dimension(0, 35));   
//        PrecoTableModel modeloDaColuna = (PrecoTableModel) jTPreco.getColumnModel();  
          
/*        modeloDaColuna.getColumn(0).setCellRenderer(rendererCentro);  
        modeloDaColuna.getColumn(1).setCellRenderer(rendererEsquerda);  
        modeloDaColuna.getColumn(2).setCellRenderer(rendererCentro); */  
      
            jTPreco.getColumnModel().getColumn(0).setPreferredWidth(30);
            jTPreco.getColumnModel().getColumn(1).setPreferredWidth(160);
            jTPreco.getColumnModel().getColumn(2).setPreferredWidth(30);
            jTPreco.getColumnModel().getColumn(3).setPreferredWidth(450);
            jTPreco.getColumnModel().getColumn(4).setPreferredWidth(30);
            jTPreco.getColumnModel().getColumn(5).setPreferredWidth(150);

    }

    private void pesquisaDuplicidade(java.lang.Integer idTipdepreco, java.lang.Integer codprotes) {
        PrecoDao dao = null;
        try {
            dao = new PrecoDao();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
        try {
            listaPreco = (ArrayList<Preco>) dao.listAll();
            for (Preco prc : listaPreco) {
               if(prc instanceof Preco){  
                       //aqui é feito um cast  
                    Preco pr = (Preco)prc;  
                   //faz verificação se for o caso.  
                    if(pr.getIdtipopreco().equals(idTipdepreco)&&(pr.getIdprotese().equals(codprotes))){  
//                        System.out.println("Tipopreco="+pr.getIdtipopreco()+" protese="+pr.getIdprotese());  
                       msg = "Atenção. Tipo de Preço e Protese já existe no Cadastro de Preço!";
                       mensagemErro(msg);
                       duplicidade = true;
                       return;
                   }
               }
            }
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
        return;
    }

    private void verificaPaternidade(String modelo, int id) {
        FichasDao dao = null;
        try {
            dao = new FichasDao();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
        try {
            listaFichas = (ArrayList<Fichas>) dao.findbyfiltrovarios(id, id, id, null, isMaximum);
            for (Fichas fic : listaFichas) {
               if(fic instanceof Fichas){  
                       //aqui é feito um cast  
                    Fichas ficha = (Fichas)fic;  
                   //faz verificação se for o caso.
                   achouFilhos = false;
                  if(ficha.getIdpreco().equals(id)){ 
                    achouFilhos = true;
                  } 
               }
            }
        } catch (SQLException ex) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            dao.closeConnection();
        } catch (SQLException e) {
            Logger.getLogger(jIFPrecos.class.getName()).log(Level.SEVERE, null, e);
        }
    }

    private Protese getuJComboBox1(){
        /**
         * para retornar o objeto utilise o método getSelectedObject
         * para retornar o nome utilize o método getSelectedItem
         */
        return (Protese) cmbProtese.getSelectedObject();
        
    }

}

Grato mais uma vez.

Pessoal

Me desculpem pois achei que a minha resposta e da forma que postei a aplicação para dirimir minha duvida está muito grande no Guj, vou tentar responder pra vcs como resolvido e fazer um outro post da minha duvida mais sucinto.

Grato.

n é essa parte q eu pedi, em alguma parte do seu codigo vc adiciona sua JTable ao seu JFrame, isso q eu quero ver xD

Olá yurifw

Entendi então tá tudo ai para ver se vc me ajuda a descobrir o q está havendo de errado no meu codigo. Principalmente na aplicação pois em relação a TableModel e como colocar as chamdas do Scroll estou ainda em duvida e preciso saber e entender essa parte.
Grato.