Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kokin

Buscar dados

Mensagens Recomendadas

kokin

Boa noite antes de mais 

Passo a explicar a minha duvida:

Estou a fazer um trabalho que tem como tema uma clinica veterinaria no qual tem estas 2 funções:

  - Recepcionista ( Insere; apaga;edita etc animais, medicos e marca as consultas)

  - Medico  (Tem de ver suas consultas e na consulta selecionada dar um preço por consulta.)

Ambos tem um acesso de login para a sua instancia o que quer dizer: recepcionista , medico , main...

Tenho uma parte no Medico que é para  Listar as Consultas do medico que fez login, numa Jlist. A duvida que tenho é que não sei como faço isso.

main é so para chamar as instancias e fazer o login.

Na Instacia medico neste caso o que esta logado carrego as consultas da base de dados assim. Mas como faço para que só  o medico que fez login consiga ver suas consultas ?

private Vector<consultas> preencheConsultas() {

	Vector<consultas> tmp = new Vector<consultas>();
	try {
	Connection con = DriverManager.getConnection("jdbc:mysql://localhost/veterinario", "root", "");
		Statement stmt = con.createStatement();
		ResultSet res = stmt.executeQuery("SELECT * FROM consultas");

		while (res.next()) {				
			int id_consulta = res.getInt("id_consulta");
			int id_animal = res.getInt("id_animal");
			int id_medico = res.getInt("id_medico");
			int id_servico = res.getInt("id_servico");
			String data = res.getString("data");
			tmp.add(new consultas(id_consulta, id_animal, id_medico, id_servico, data));
		}
	} catch (SQLException ex) {
		System.out.println("Erro na Base de Dados de Consultas");
	}
	return tmp;
}

Uso Eclipse

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kokin

Este e a parte do login que tenho.. na instancia "main"

private void login() {
	user_info = field.getText();
	pass_info = fieldPass.getText();

	if (user_info.equals("") || pass_info.equals("")) {
		JOptionPane.showMessageDialog(null,"Preencha todos os campos","",JOptionPane.ERROR_MESSAGE);
		return;
	}
	for(Admin tmp: preencheAdmin()){
		if(user_info.equals(tmp.getAdmin())&& pass_info.equals(tmp.getPass())){
			new Administrador();
			activo_admin = tmp;
			dialog.dispose();
			return; 
	}
	}
	for (medicos tmep : preencheMedicos()) {
		if(tmep.getMedico().equals(user_info) && tmep.getPass().equals(pass_info)){
			new medico();
			activo = tmep;
			dialog.dispose();
			return;
			}
	}
	JOptionPane.showMessageDialog(new JOptionPane(),"Login incorrecto", "", JOptionPane.ERROR_MESSAGE);
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Pelo princípio, os acentos são para colocar nas palavras e essas descrições estão confusas, seria conveniente que explicasses melhor o que pretendes.

Depois, estás a guardar os dados de alguma forma particular? Que estruturas de dados usas para guardar os objectos e como é que listas os vários objectos?

Tenho uma parte no Medico que é para  Listar as Consultas do medico que fez login, numa Jlist. A duvida que tenho é que não sei como faço isso.

Mas tens isso já feito ou não tens isso feito? No início dizes que tens feito, mas depois dizes que não sabes fazer.

Mas como faço para que só  o medico que fez login consiga ver suas consultas ?

Suponho que todas as consultas tenham o ID do médico que as criou, bastará colocar esse ID como condição do SQL ou de algum filtro que estejas a fazer se o fizeres sem ser em SQL.

Onde estão as queries para pesquisa de dados e como estás a filtrar os dados nas queries?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kokin

Já resolvi a minha duvida, desde já muito obrigado se voltar a ter duvidas volto aqui e vou tentar ser mais preciso no que pretendo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kokin

Como faço para que uma JTextField  no caso de ser por exemplo o nome do animal que não se possa poder inserir números?

O mesmo para por exemplo a idade que não se possa inserir letras.

Gostava de saber como poder dar essa regra.

if(txtmorada.getText().equals(?)){
      JOptionPane.showMessageDialog(null,"Inserio caracter invalido","",JOptionPane.ERROR_MESSAGE);
return;}

devo meter algo dentro do equals?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Ou validas manualmente, com os métodos que a classe String tem ou, em vez de usares um JTextField, usas um JFormattedField. Este componente permite a criação de filtros e a definição de regras para os valores que são permitidos. Consulta a documentação que tens lá exemplos de como usar o componente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kokin

Surgiu me mais uma duvida  :D :

Tenho na base de dados na tabela animal um campo chamado foto no qual estou a armazenar todos os nomes das imagem. Como faço para imprimir esse campo de novo para a label.

Pois guardar o nome guarda mas como é que vai saber o caminho onde essa imagem tava?

Esta e a minha lista:

	ListaAnimais.addListSelectionListener(new ListSelectionListener() {	

		int x=0; 
		public void valueChanged(ListSelectionEvent arg0) {
			animais anSelect = (animais) ListaAnimais.getSelectedValue();
			File diretorio = fich.getSelectedFile();
			if (x==0) {				
				txtnome.setText(anSelect.getAnimal());
				txtdono.setText(anSelect.getDono());

				txtmorada.setText(anSelect.getMorada());
				combocor.setSelectedIndex(getIndiceCor(anSelect.getId_cor()));
				combotipo.setSelectedIndex(getIndiceTipo(anSelect.getId_tipo()));
				foto.setIcon(anSelect.getFoto()); //Erro ta aqui 						

				x++;
			}
			else{ 
				x--;				
			}

		}
	});

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Pois guardar o nome guarda mas como é que vai saber o caminho onde essa imagem tava?

Guardaste o caminho todo ou apenas o nome da imagem? Se guardaste apenas o nome da imagem então não tens forma de saber onde estava a imagem, tens de guardar o caminho todo ou ter todas as imagens no mesmo local, um local pré-definido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kokin

Só guardei o nome como por exemplo: nome.png

E como faço então para ir buscar ao local predefinido?

Tipo workspace-->programa--->imagens

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kokin

O problema é esse, não sei como deva fazer...

    Não tenho grandes conhecimentos em Java, tenho muita dificuldade neste tipo de situações.

Pensava que havia uma forma de dizer exactamente onde as imagens se situavam.Especificar o caminho com um comando ou algo assim...

Mas pelo que percebi o que dizes é guardar na base de dados o caminho todo ou guardar numa txt os caminhos.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Se só estás a guardar o nome da images estás a perder o resto da informação.

Se sabes sempre em que pasta estão as imagens, mesmo que seja relativo à aplicação, já tens tudo o que precisas, basta criares um File com essa informação.

Se a pasta vai ser diferente para cada imagem, ou se não sabes em que local estão as imagens, então devias guardar o caminho completo para a imagem.

Não há nada automático que te possa dar a informação de onde estavam as imagens, como é que o computador pode adivinhar? :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kokin

Já consegui por o caminho da imagem no campo da imagem na base de dados.

O que não consigo é ler o caminho da imagem para o label, pois o que pretendo é quando seleccionar o animal da lista, mandar para os dados para os textfield, label"imagem". Se alguém me poder ajudar ficarei muito agradecido ter de entregar este trabalho hoje...

Aqui ta o código da Lista :hmm:

ListaAnimais.addListSelectionListener(new ListSelectionListener() {        
                        
                        int x=0; 
                        public void valueChanged(ListSelectionEvent arg0) {
                                animais anSelect = (animais) ListaAnimais.getSelectedValue();
                                File diretorio = fich.getSelectedFile();
                                if (x==0) {                                
                                        txtnome.setText(anSelect.getAnimal());
                                        txtdono.setText(anSelect.getDono());
                                        
                                        txtmorada.setText(anSelect.getMorada());
                                        combocor.setSelectedIndex(getIndiceCor(anSelect.getId_cor()));
                                        combotipo.setSelectedIndex(getIndiceTipo(anSelect.getId_tipo()));
                                        label_foto.setIcon(anSelect.getFoto()); //[b]Erro ta aqui [/b]                                                
                                        
                                        x++;
                                }
                                else{ 
                                        x--;                                
                                }

                        }
                });

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.