Tratamento de valor

Fala galera, blz?

Seguinte, tenho uma interface que efetua locação de um veiculo:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

   public class EfetuarLocaView extends JFrame{
   
      protected JButton consultarCliente, efetuarLocacao, consultarVeiculo;
  		protected JTable tabelaPF,tabelaPJ, tabelaVeiculo;
		protected JScrollPane resultadoPF,resultadoPJ;    
		protected JPanel painel;
		protected TableModel modelPF, modelPJ;
		protected JComboBox tipoTarifa;	
		protected int idLocacao;
		
		JLabel localLocacao,  dtLocacao, tipTarifa, dataDevolucao, valor;
		JTextField tf_buscaCli, tf_buscaVeic, tf_localLocacao, tf_dtLocacao, tf_dataDevolucao, tf_valor;
		JRadioButton radioPF, radioPJ;
   
      public EfetuarLocaView(){
      
         super("Locar Veículo");
         setSize(540,580);
         setLocation(400,100);
         painel = new JPanel(new SpringLayout());
         SpringLayout layout = new SpringLayout();
         painel.setLayout(layout);
      
         
			//JLabel
			localLocacao = new JLabel("Local de locação");
			dtLocacao = new JLabel("Data de locação");
			tipTarifa = new JLabel("Tipo da tarifa");
			dataDevolucao = new JLabel("Data devolução"); 
			valor = new JLabel("Valor");

			
			//JText
			tf_buscaCli = new JTextField(15);
			tf_buscaVeic = new JTextField(15);
			tf_localLocacao = new JTextField(15);
			tf_dtLocacao = new JTextField(15);
			tf_dataDevolucao = new JTextField(15); 
			tf_valor = new JTextField(15);

			
			//JRadio
			
    	  	radioPF = new JRadioButton("CPF");
    	  	radioPJ = new JRadioButton("CNPJ");
		  
		  	//Grupo de Opcoes
    	  	ButtonGroup grupo = new ButtonGroup();
    	  	grupo.add(radioPF);
        	grupo.add(radioPJ);
		  	radioPF.setSelected(true);

				
			//JButtons
			consultarCliente = new JButton("Consultar Cliente");
         consultarVeiculo = new JButton("Consultar Veículo");
         efetuarLocacao = new JButton("Efetuar Locação");
      
			//Tratador dos botoes
			TrataBotao tratador = new TrataBotao();
			
			//Ação dos botões
			consultarCliente.addActionListener(tratador);
			consultarVeiculo.addActionListener(tratador);
			efetuarLocacao.addActionListener(tratador);
			
			//JCombo de tarifa
		   String[] opcoes ={"Km rodado", "Km livre"};
		   tipoTarifa = new JComboBox(opcoes);
		   tipoTarifa.setSelectedIndex(0);
			
      
   		//tabelas
			tabelaPF = new JTable();
			tabelaPJ = new JTable();
		
			modelPF = new DefaultTableModel(new String[] {"ID", "CPF", "Nome"},0) ;
			modelPJ = new DefaultTableModel(new String[] {"ID", "CNPJ", "Nome"},0);
		
			tabelaPF.setModel(modelPF);
			tabelaPJ.setModel(modelPJ);
		
			
			resultadoPF = new JScrollPane();
			resultadoPF.setViewportView(tabelaPF);
		
			resultadoPJ = new JScrollPane();
			resultadoPJ.setViewportView(tabelaPJ);
		
			tabelaPF.setPreferredScrollableViewportSize(new Dimension(490, 100));
			tabelaPJ.setPreferredScrollableViewportSize(new Dimension(490, 100));   	
			
			radioPJ.addActionListener(tratador);
			radioPF.addActionListener(tratador);

		
		//Instancia Tabela
         tabelaVeiculo = new JTable();
      //Define um model2o para a tabela com o Título da coluna
         TableModel model2 = new DefaultTableModel(new String[] {"Veiculo","Cadeira", "GPS", "Ar", "Status"},0);
      //seta o model2o
         tabelaVeiculo.setModel(model2);
      //seta o nome??
         tabelaVeiculo.setName("Resultado");
      //nao sei ainda
         JScrollPane resultado2 = new JScrollPane();
      //nao sei ainda
         resultado2.setViewportView(tabelaVeiculo);
      //define um tamanho fixo pra tabela
         tabelaVeiculo.setPreferredScrollableViewportSize(new Dimension(490, 100));
      //nao sei	
         DefaultTableModel dtm2 = (DefaultTableModel) tabelaVeiculo.getModel();
		/*adiciona uma linha
         dtm2.addRow(new Object[] {"912311","Gol","Paula Tejano","10/09/2012"});*/
			
			tabelaVeiculo.getSelectedRow();
			 
		     	
         painel.add(consultarVeiculo);
         painel.add(consultarCliente);
         painel.add(resultado2);
         painel.add(resultadoPF);
			painel.add(resultadoPJ);
         painel.add(efetuarLocacao);
			painel.add(tf_buscaCli);
			painel.add(tf_buscaVeic);
			painel.add(radioPF);
			painel.add(radioPJ);
			painel.add(localLocacao);
			painel.add(tf_localLocacao);
			painel.add(dtLocacao);
			painel.add(tf_dtLocacao);
			painel.add(tipoTarifa);
			painel.add(tipoTarifa);
			painel.add(dataDevolucao);
			painel.add(valor);
			painel.add(tf_dataDevolucao);
			painel.add(tf_valor);
      
  		//Configura a posição de cada item na tela - Radio CPF
         layout.putConstraint(SpringLayout.WEST, radioPF,20,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, radioPF,20,SpringLayout.NORTH, painel);
			
		//Configura a posição de cada item na tela - Radio CNPJ
         layout.putConstraint(SpringLayout.WEST, radioPJ,0,SpringLayout.WEST, radioPF);
         layout.putConstraint(SpringLayout.NORTH, radioPJ,20,SpringLayout.NORTH, radioPF);
      
		//Configura a posição de cada item na tela - Text Cliente
         layout.putConstraint(SpringLayout.WEST, tf_buscaCli,100,SpringLayout.WEST, radioPF);
         layout.putConstraint(SpringLayout.NORTH, tf_buscaCli,10,SpringLayout.NORTH, radioPF);
			
		//Configura a posição de cada item na tela - Botao Consultar Cliente
         layout.putConstraint(SpringLayout.WEST, consultarCliente,205,SpringLayout.WEST, tf_buscaCli);
         layout.putConstraint(SpringLayout.NORTH, consultarCliente,0,SpringLayout.NORTH, tf_buscaCli);
      
      //Configura a posição de cada item na tela - tabela cliente
         layout.putConstraint(SpringLayout.WEST, resultadoPF,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, resultadoPF,40,SpringLayout.NORTH, consultarCliente);
		
		//Configura a posição de cada item na tela - tabela cliente
         layout.putConstraint(SpringLayout.WEST, resultadoPJ,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, resultadoPJ,40,SpringLayout.NORTH, consultarCliente);
		
		
		//Configura a posição de cada item na tela - Text Veiculo
         layout.putConstraint(SpringLayout.WEST, tf_buscaVeic,0,SpringLayout.WEST, tf_buscaCli);
         layout.putConstraint(SpringLayout.NORTH, tf_buscaVeic,140,SpringLayout.NORTH, resultadoPJ);
      
      //Configura a posição de cada item na tela - botao Consultar Veiculo
         layout.putConstraint(SpringLayout.WEST, consultarVeiculo,205,SpringLayout.WEST, tf_buscaVeic);
         layout.putConstraint(SpringLayout.NORTH, consultarVeiculo,0,SpringLayout.NORTH, tf_buscaVeic);
      
      //Configura a posição de cada item na tela - tabela veiculo
         layout.putConstraint(SpringLayout.WEST, resultado2,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, resultado2,40,SpringLayout.NORTH, tf_buscaVeic);
      
      //Configura a posição de cada item na tela - botao efetuar locação
         layout.putConstraint(SpringLayout.WEST, efetuarLocacao,205,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, efetuarLocacao,210,SpringLayout.NORTH, resultado2);
		
		//JLabels + JText
			layout.putConstraint(SpringLayout.WEST, localLocacao,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, localLocacao,140,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, tf_localLocacao,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tf_localLocacao,160,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, dtLocacao,200,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, dtLocacao,140,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, tf_dtLocacao,200,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tf_dtLocacao,160,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, dataDevolucao,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, dataDevolucao,180,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, tf_dataDevolucao,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tf_dataDevolucao,200,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, valor,200,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, valor,180,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, tf_valor,200,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tf_valor,200,SpringLayout.NORTH, resultado2);
			
			
		
		//Configura posição do JCombo
			layout.putConstraint(SpringLayout.WEST, tipoTarifa,380,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tipoTarifa,160,SpringLayout.NORTH, resultado2);	
			
			//Configura posição do JCombo
			layout.putConstraint(SpringLayout.WEST, tipTarifa,380,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tipTarifa,140,SpringLayout.NORTH, resultado2);	
 
         setResizable(false);
         painel.setOpaque(true);
         setContentPane(painel);
         setVisible(true);
      
     		//Fecha apenas a janela que esta aberta
         fechaJanela  fecha = new fechaJanela();
      		
      
      }
    
   
	
private class TrataBotao implements ActionListener  
{  
   public void actionPerformed(ActionEvent evento)
	{ 
		//botao consultar cliente
		ClienteCtrl ctrl = new ClienteCtrl();
		Iterator<ClientePJ> itPJ;
		Iterator<ClientePF> itPF;
		List<ClientePJ> retornoPJ;
		List<ClientePF> retornoPF;
		DefaultTableModel dtmPJ;
		DefaultTableModel dtmPF;
		

			//radioPF
			if(evento.getSource()==radioPF){
				resultadoPF.setVisible(true);
				resultadoPJ.setVisible(false);
				painel.repaint();
			
			}
			//radioPJ
			if(evento.getSource()==radioPJ){
				resultadoPJ.setVisible(true);
				resultadoPF.setVisible(false);
				painel.repaint();
				
			}

	
		if(evento.getSource()==consultarCliente){
				
			if(radioPF.isSelected()){
				retornoPF = ctrl.consultarPF(tf_buscaCli.getText());;
				dtmPF = (DefaultTableModel) tabelaPF.getModel();
					
				// antes de preencher, limpa todos os dados do JTable, remove linhas em branco da tabela
				while (tabelaPF.getRowCount() > 0) {
					dtmPF.removeRow(0);
				}
					
				for (itPF = retornoPF.iterator(); itPF.hasNext();){
					ctrl.cliPF = itPF.next();
					// inclui uma linha no JTable com os dados de um
					// registro retornado
					//
					dtmPF.addRow(new Object[] { ctrl.cliPF.getIdCliente(), ctrl.cliPF.getCPF(),  ctrl.cliPF.getNome()});
				}
			}
		
				if(radioPJ.isSelected()){
					retornoPJ = ctrl.consultarPJ(tf_buscaCli.getText());
					dtmPJ = (DefaultTableModel) tabelaPJ.getModel();
					
				// antes de preencher, limpa todos os dados do JTable, remove linhas em branco da tabela
				while (tabelaPJ.getRowCount() > 0) {
					dtmPJ.removeRow(0);
				}
					
				for (itPJ = retornoPJ.iterator(); itPJ.hasNext();){
					ctrl.cliPJ = itPJ.next();
					// inclui uma linha no JTable com os dados de um
					// registro retornado
					//
					dtmPJ.addRow(new Object[] { ctrl.cliPJ.getIdCliente(), ctrl.cliPJ.getCNPJ(),ctrl.cliPJ.getNome()});
				}
			}


		
	}
  
      
   //botao pesquisar  
   if(evento.getSource()==consultarVeiculo){  
                
   	Veiculos veiculos = new Veiculos();  
 		//List<Veiculos> retorno = veiculos.consultarVeiculos();  
      List<Veiculos> retorno = veiculos.consultarVeiculos(tf_buscaVeic.getText());   
      DefaultTableModel dtm = (DefaultTableModel) tabelaVeiculo.getModel();  
                      
      // antes de preencher, limpa todos os dados do JTable, remove linhas em branco da tabela  
      while (tabelaVeiculo.getRowCount() > 0) {  
      	dtm.removeRow(0);  
      }  
                      
      for (Iterator<Veiculos> it = retorno.iterator(); it.hasNext();) {  
      	veiculos = it.next();  
         // inclui uma linha no JTable com os dados de um  
         // registro retornado  
         //  
         dtm.addRow(new Object[] { veiculos.getNome(), veiculos.getGrupo(), veiculos.getPlaca()});  
      }  
   }    
 





	//Cadastrar locacao
	if(evento.getSource()==efetuarLocacao){
		LocacaoCtrl controle = new LocacaoCtrl();
					
		if(controle.cadastrarLocacao(tf_localLocacao.getText(),tf_dtLocacao.getText(),
		tipoTarifa.getSelectedItem().toString(), tf_dataDevolucao.getText(), double.parseDouble(tf_valor).getText(), 1, {
					
			JTextField texts[] ={tf_localLocacao,tf_dtLocacao, tf_dataDevolucao};
			JOptionPane.showMessageDialog(null,Validar.textIsNull(texts));
		}
	}
 }				
}
}

Bom, cada veiculo tem um valor de diária e eu não posso deixar um campo para a pessoa inserir esse valor, tem que ser um valor estipulado…

Ai que vem a dúvida, como eu poderia fazer essa solução para que por exemplo, antes da pessoa clicar em “efetuar locação” o valor já seja puxado e seja incluido na locação depois?

Espero que alguem possa me ajudar…

Abs,

Voce pode trazer esse valor na sua tela normalmente, o que precisara fazer é setar o textfield ou formattedtextfield para setEditable(false).

E quando for clicar em efetuar operacao, ele manda, junto o valor do campo que tem esse valor.

Então, mas ai eu teria que ter esse valor definido no banco certo?

com certeza é melhor defini-lo no banco. Porque se nao voce setaria por nome do carro ou marca, o que nao é uma boa pratica.

Então…até ai beleza, eu crio um campo na tabela e tal tal tal…

mas na hora de trazer pra tela, eu declaro isso no DAO?

ou na tela mesmo? eu to meio que viajando…

Da mesma forma que voce traz os outros valores.

Cria uma variavel no DAO pra receber esse campo.
Na tela voce faz um select e seta em um textfield.

acho que entendi, só vou ter que fazer esse select no DAO mesmo pq é MVC, não quero fugir muito da ideologia…tentarei aqui e darei o feed…

abs

galera, pelo fato de ser double não estou conseguindo retornar esse dado do banco no JText, alguem poderia me ajudar?

textField.setText(""+seuDouble);

isso vai no DAO?

pq assim, eu tenho um jtable, ai a pessoa busca o veiculo e seleciona no jtable…eu quero que aconteça o seguinte:

Assim que ele selecionar por exemplo, um celta, venha um valor(preço) definido por mim no banco para esse JTextField…

ah e detalhe: essa coluna “valor” não existe na tabela, só no banco que consta como campo la na tabelinha…

[quote=victorrgds]pq assim, eu tenho um jtable, ai a pessoa busca o veiculo e seleciona no jtable…eu quero que aconteça o seguinte:

Assim que ele selecionar por exemplo, um celta, venha um valor(preço) definido por mim no banco para esse JTextField…[/quote]

Oi,

A sua cabeça está muito confusa.

Você só precisa fazer um select COLUNA from TABELA where Carro=‘CARRO_SELECIONADO’; pegar o retorno e jogar no JTextField. Se o select deverá ser feito no DAO ou em qualquer outro lugar (como a sala do templo, por exemplo) só dependerá do seu modelo arquitetônico.

Tchauzin!

como eu pego o retorno e jogo no jtext? =x

pq assim, eu queria colocar na DAO de veiculos, como é double eu não sei como passo pro jtext esse valor selecionado…

Minha DAO de veiculos:

import javax.swing.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class VeiculosDAO
{
	public VeiculosDAO(){
	
	}
	
	public List<Veiculos> pesquisar(String buscaText) {
		
		ArrayList resultadoPesquisa = new ArrayList<Veiculos>();
		
		String sqlSelect = "SELECT * FROM veiculo WHERE nome LIKE '%"+buscaText+"%'";
		PreparedStatement stm = null;
		ResultSet rs = null;
		Connection conn = null;
		
		try {
			AcessoBD bd = new AcessoBD();
			conn = bd.obtemConexao();
			
			stm = conn.prepareStatement(sqlSelect);

			rs = stm.executeQuery();

			while (rs.next()) {
				Veiculos rsc = new Veiculos(
						rs.getInt("idVeiculo"),
						rs.getString("nome"),
						rs.getString("grupo"),
						rs.getString("placa"),
						rs.getString("chassi"),
						rs.getString("ar"),
						rs.getString("cadeira"),
						rs.getString("gps"),
						rs.getDouble("valor"));
						resultadoPesquisa.add(rsc);
			}
			return resultadoPesquisa;
			
		} catch (Exception e) {
			e.printStackTrace();
			return resultadoPesquisa;
			
		} finally {
			if (stm != null) {
				try {
					stm.close();
				} catch (SQLException e1) {
					System.out.print(e1.getStackTrace());
				}
			}
		  }
	
	}
	
	

}

Teria como fazer aqui e já chamar la pro jtext?

No DAO deixa so as querys, para setar o textfield poe isso nas views… voce ta um pouco confuso realmente, porque voce como organizador do sistema deveria decidir onde isso vai, porque se nao for, o lugar é irrelevante.

pq nessa parte aqui:

[code]//Cadastrar locacao
if(evento.getSource()==efetuarLocacao){
LocacaoCtrl controle = new LocacaoCtrl();

	if(controle.cadastrarLocacao(tf_localLocacao.getText(),tf_dtLocacao.getText(),
	tipoTarifa.getSelectedItem().toString(), tf_dataDevolucao.getText(),1)) {
				
		JTextField texts[] ={tf_localLocacao,tf_dtLocacao, tf_dataDevolucao};
		JOptionPane.showMessageDialog(null,Validar.textIsNull(texts));
	}
}

[/code]

Eu teria que deixar por exemplo getDouble ali no primeiro if, senão ja ia dar aquele erro que requer por exemplo 5 strings 1 int e 1 double…e que só foi identificado até o int por exemplo…

eu sinceramente to perdidasso pq isso é pra hoje, ai começou a embrulhar a minha cabeça…rs

eu faria o select dentro da classe view msm então e, depois passaria pro jtext?

bom, mudei de idéia e vou trazer os valores da diária no jtable mesmo, só que eu quero trazer o valor de quanto vai ficar a locação nesse jtext, é só criar um método na controle que calcule isso e retornar no jtext valor?

abs,

Pessoal…

Como eu faço para capturar um valor do JTable e passar para um JText…por exemplo:

eu tenho uma coluna Valor diária no jtable, e nessa mesma interface tem um jtextField com setEditable(false)…

eu quero pegar esse valor da diária e mostrar no jtext para poder inserir no banco…

alguem poderia me ajudar?

abs

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#selection