private Mercadoria loadMercadoriaFromPanel() {
        String nome = null;
        if (!tfNome.getText().trim().isEmpty()) {
            nome = tfNome.getText().trim();
        }
        
        String descricao = null;
        if (!tfDescricao.getText().trim().isEmpty()) {
            descricao = tfDescricao.getText().trim();
        }

        Integer quantidade = null;
        try {
            if (!tfQuantidade.getText().trim().isEmpty()) {
                quantidade = Integer.valueOf(tfQuantidade.getText());
            }
        } catch (NumberFormatException nex) {
            throw new RuntimeException("Erro durante a conversão do campo quantidade (Integer).\nConteudo inválido!");
        }

        Double preco = null;
        try {
            if (!tfPreco.getText().trim().isEmpty()) {
                preco = Mercadoria.formatStringToPreco(tfPreco.getText());
            }
        } catch (ParseException nex) {
            throw new RuntimeException("Erro durante a conversão do campo preço (Double).\nConteudo inválido!");
        }

        Integer id = null;
        try {
            id = Integer.parseInt(tfId.getText());
        } catch (Exception nex) {}

        Integer version = null;
        try {
            version = Integer.parseInt(tfVersion.getText());
        } catch (Exception nex) {}

        return new Mercadoria(id, nome, descricao, quantidade, preco, version);
    }