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,