Ir ao conteúdo
  • Cadastre-se

donutLukke

Membro Pleno
  • Posts

    23
  • Cadastrado em

  • Última visita

  1. Boa noite pessoal! Estou tentando rodar uma aplicação Maven no Eclipse IDE for Enterprise Java and Web Developers, mas o resultado que aparece na interface gráfica não condiz com o que é mostrado no site do PrimeFaces. Tem esse código .xhtml: <h:form> <h:panelGrid id="grid" cellpadding="5" columns="2" style="margin-bottom:10px"> <f:facet name="header"> <p:messages id="msgs" /> </f:facet> <p:outputLabel for="firstname" value="Firstname:" /> <p:inputText id="firstname" value="#{userView.firstname}" /> <p:outputLabel for="surname" value="Surname:" /> <p:inputText id="surname" value="#{userView.lastname}" required="true" requiredMessage="Surname is required." /> </h:panelGrid> <h:panelGrid columns="6" cellpadding="5"> <p:commandButton value="All" id="btnAll" process="@all" update="grid" action="#{userView.save}" /> <p:commandButton value="Form" id="btnForm" process="@form" update="grid" action="#{userView.save}" /> <p:commandButton value="This" id="btnThis" process="@this" update="grid" action="#{userView.save}" /> <p:commandButton value="None" id="btnNone" process="@none" update="grid" action="#{userView.save}" /> <p:commandButton value="Parent" id="btnParent" process="@parent" update="grid" action="#{userView.save}" /> <p:commandButton value="This Surname" id="btnSurname" process="@this,surname" update="grid" action="#{userView.save}" /> </h:panelGrid> </h:form> E esse código Java: @Named @RequestScoped public class UserView { private String firstname; private String lastname; public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public void save() { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Welcome " + firstname + " " + lastname)); } } Quando apertasse o botão "All", o desejável seria que aparecesse isso na tela: Mas o meu não aparece nada quando aperto: Estou usando esse código no arquivo process.xhtml: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <body> <h:form> <h:panelGrid id="grid" cellpadding="5" columns="2" style="margin-bottom:10px"> <f:facet name="header"> <p:messages id="msgs" /> </f:facet> <p:outputLabel for="firstname" value="Firstname:" /> <p:inputText id="firstname" value="#{userView.firstname}" /> <p:outputLabel for="surname" value="Surname:" /> <p:inputText id="surname" value="#{userView.lastname}" required="true" requiredMessage="Surname is required." /> </h:panelGrid> <h:panelGrid columns="6" cellpadding="5"> <p:commandButton value="All" id="btnAll" process="@all" update="grid" action="#{userView.save}" /> <p:commandButton value="Form" id="btnForm" process="@form" update="grid" action="#{userView.save}" /> <p:commandButton value="This" id="btnThis" process="@this" update="grid" action="#{userView.save}" /> <p:commandButton value="None" id="btnNone" process="@none" update="grid" action="#{userView.save}" /> <p:commandButton value="Parent" id="btnParent" process="@parent" update="grid" action="#{userView.save}" /> <p:commandButton value="This Surname" id="btnSurname" process="@this,surname" update="grid" action="#{userView.save}" /> </h:panelGrid> </h:form> </body> </html> E esse no UserView.java: import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; @RequestScoped @ManagedBean(name = "userView") public class UserView { private String firstname; private String lastname; public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public void save() { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Welcome " + firstname + " " + lastname)); } } O que poderia estar errado para não aparecer a mensagem de "Surname is required."? Tenho essas dependências no meu projeto: Site do PrimeFaces com o componente que estou tentando utilizar: PrimeFaces Showcase
  2. Muito obrigado amigo, excelente ajuda.
  3. Mas como seria feito isso? Eu baixaria a versão antiga na minha máquina e já poderia abrir o arquivo HTML? Ou tenho que baixar também esse "Appletviewer" mencionado por você? Tenho a versão do Java 20 instalada, teria que desinstalá-la para rodar o applet?
  4. Desculpa por não ter colocado o link, foi daqui: https://www.grc.nasa.gov/www/k-12/VirtualAero/BottleRocket/airplane/kiteprog.html O botão no final da página escrito "Download Aplet" que você consegue o arquivo zipado, a diferença dos dois arquivos (o que eu coloquei aqui e o do site) é um arquivo HTML que eu exclui que abre o site do download, não interfere no outro arquivo HTML.
  5. Boa noite pessoal! Recentemente baixei um arquivo zipado e as instruções para rodar o programa contido nele, só dizia que era necessário abrir o arquivo HTML em algum navegador que eu poderia ver a aplicação, mas não aconteceu. A pasta depois de criada possuia esses arquivos: Vocês saberiam me dizer como deveria prosseguir para poder abrir o arquivo HTML e ver a aplicação esperada? (Estarei colocando o arquivo .zip para baixarem e tentarem compilar) KiteModeler.rar
  6. Não saberia responder sua pergunta, estou bem no início da programação Java, acredito que talvez possa ser o compilador que eu esteja usando, que fica no Replit, porque quando compilei o código em um compilador online não apresentou erros. Você já usou o Replit ou conhece um ambiente melhor para programar em Java?
  7. Bom dia, boa tarde ou boa noite pessoal! Comecei a me aventurar na programação em Java há pouco tempo e tenho algumas dúvidas. 1° O código abaixo possui algum erro de sintaxe no início? Estou usando um compilador e ele emite a seguinte mensagem antes de "public class Student": "Student.java is not on the classpath of project myartifactid, only syntax errors are reported". 2° Como eu faço para que na impressão, as médias das notas que seria o "Average" saia com duas casas decimas de precisão? public class Student { String Name; int Registration; String Cpf; String DateOfBirth; double Height; int Age; double Note[] = new double[5]; double Average; String SituationEvidence; public Student(String Name, int Registration, String Cpf, String DateOfBirth, double Height, int Age, double Note1, double Note2, double Note3, double Note4, double Note5) { this.Name = Name; this.Registration = Registration; this.Cpf = Cpf; this.DateOfBirth = DateOfBirth; this.Height = Height; this.Age = Age; this.Note[0] = Note1; this.Note[1] = Note2; this.Note[2] = Note3; this.Note[3] = Note4; this.Note[4] = Note5; CalculateAverage(); } public void SetNote(int Registration, double Note) { if ((Registration < 1) || (Registration > this.Note.length)) return; this.Note[Registration-1] = Note; CalculateAverage(); } public double GetNote(int Registration) { if ((Registration < 1) || (Registration > Note.length)) return 0; return Note[Registration-1]; } private void CalculateAverage() { double Sum = 0; for (int i = 0; i < Note.length; i++) { Sum += Note[i]; } Average = Sum / Note.length; SituationEvidence(); } private void SituationEvidence() { if (Average > 7) { this.SituationEvidence = "Approved!"; } else if (Average > 5) { this.SituationEvidence = "In exam."; } else { this.SituationEvidence = "Disapproved."; } } public String toString() { String out = ""; out += "\nName: " + Name + " \n"; out += "Registration: " + Registration + " \n"; out += "Cpf : " + Cpf + " \n"; out += "Date of birth: " + DateOfBirth + " \n"; out += "Height: " + Height + " \n"; out += "Age: " + Age + " \n"; out += "Average: " + Average + " \n"; out += "Bimonthly situation: " + SituationEvidence + " \n"; return out; } public static void main(String[] args) { Student student[] = new Student[3]; student[0] = new Student("Lucas", 1, "111", "15/05/2001", 1.80, 21, 5.8, 9.2, 4.1, 7.8, 8); student[1] = new Student("Luan", 2, "222", "15/05/2001", 1.79, 21, 9, 9.3, 8, 7, 6); student[2] = new Student("Letícia", 3, "333", "21/10/2002", 1.68, 20, 5, 4, 6, 3, 6.2); for (int i = 0; i < student.length; i++) { System.out.println(student[i]); } } } Desde já, agradeço pela atenção.
  8. Teria como você me explicar qual seria a função do void *info? typedef struct st_AVL { void* info; struct st_AVL* esquerdo; struct st_AVL* direito; short altura; } AVL;
  9. Fiz esse, mas está em linguagem C. #include <stdio.h> #define N 10 void inicializaVendas(int tab_vendas[]){ int v; for(v = 0; v <= N; v++) tab_vendas[v] = 0; } void preencheVendas(int codigo, int tab_vendas[]){ tab_vendas[codigo]++; } int main(){ int vendas[N]; int menos_vendido, mais_vendido, codigo; int temp; inicializaVendas(vendas); printf("\n"); do{ printf("Digite o código do produto: "); scanf("%d", &codigo); preencheVendas(codigo, vendas); }while(codigo != 0); temp = vendas[1]; for( codigo = 1; codigo <= N; codigo++){ if(temp > vendas[codigo]){ menos_vendido = codigo; temp = vendas[codigo]; } } temp = vendas[1]; for( codigo = 1; codigo <= N; codigo++){ if(temp < vendas[codigo]){ mais_vendido = codigo; temp = vendas[codigo]; } } printf("\nCódigo do produto menos vendido: %d\nQuantidade de vezes que foi vendido: %d", menos_vendido, vendas[menos_vendido]); printf("\n\nCódigo do produto mais vendido: %d\nQuantidade de vezes que foi vendido: %d\n", mais_vendido, vendas[mais_vendido]); for( codigo = 1; codigo <= N; codigo++) printf("\n%d --> %d", codigo, vendas[codigo]); return 0; }
  10. Consegui encontrar o erro, a invasão de memória deve ter ocorrido por falha do compilador ou do buffer, como disse anteriormente, o erro estava na função "compareAluno", as condições colocadas estavam dando conflito por causa da seguinte condição "else if(strlen(variavel) <= (CANOME-1))", dessa forma, ao cair uma string de tamanho igual ou maior que "char cpf[CACPF]" , o código fazia a comparação da string "cpf" digitada com a string "nome" já adicionada. Forma errada do código: int compareAluno(stc_Aluno **a, char variavel[]){ int i, j, aux = 0; if(*a != NULL){ if(strlen(variavel) == (CAID-1)){ if(strcmp(variavel, (*a)->id) == 0) return 1; else if(atof(variavel) < atof((*a)->id)) i = compareAluno(&(*a)->esquerdo, variavel); else if(atof(variavel) > atof((*a)->id)) j = compareAluno(&(*a)->direito, variavel); if(i == 1) return aux = 1; else if(j == 1) return aux = 1; else return 0; } else if(strlen(variavel) <= (CANOME-1)){ // erro nesta linha if(strcmp(variavel, (*a)->nome) == 0){ return 1; } int i = compareAluno(&(*a)->esquerdo, variavel); int j = compareAluno(&(*a)->direito, variavel); if(i == 1) return aux = 1; else if(j == 1) return aux = 1; else return 0; } else if(strlen(variavel) == (CACPF-1)){ if(strcmp(variavel, (*a)->cpf) == 0) return 1; int i = compareAluno(&(*a)->esquerdo, variavel); int j = compareAluno(&(*a)->direito, variavel); if(i == 1) return aux = 1; else if(j == 1) return aux = 1; else return 0; } } else{ if(aux == 1) return aux; } return aux; } Forma correta do código: int compareAluno(stc_Aluno **a, char variavel[], int opcao){ int i, j, aux = 0; if(*a != NULL){ if(opcao == 1){ if(strcmp(variavel, (*a)->id) == 0) return 1; else if(atof(variavel) < atof((*a)->id)) i = compareAluno(&(*a)->esquerdo, variavel, opcao); else if(atof(variavel) > atof((*a)->id)) j = compareAluno(&(*a)->direito, variavel, opcao); if(i == 1) return aux = 1; else if(j == 1) return aux = 1; else return 0; } else if(opcao == 2){ if(strcmp(variavel, (*a)->nome) == 0) return 1; int i = compareAluno(&(*a)->esquerdo, variavel, opcao); int j = compareAluno(&(*a)->direito, variavel, opcao); if(i == 1) return aux = 1; else if(j == 1) return aux = 1; else return 0; } else if(opcao == 3){ if(strcmp((*a)->cpf, variavel) == 0) return 1; int i = compareAluno(&(*a)->esquerdo, variavel, opcao); int j = compareAluno(&(*a)->direito, variavel, opcao); if(i == 1) return aux = 1; else if(j == 1) return aux = 1; else return 0; } } else{ if(aux == 1) return aux; } return aux; } Desde já, agradeço pelo aprendizado de como formular um tópico seguindo as diretrizes do fórum para explicitar minha dúvida.
  11. Muito obrigado. Uma pessoa aparentemente encontrou o problema, na função "compareAluno" a condição para procurar pelo ID, NOME ou CPF é o tamanho da string, como na condição que verifica o NOME há um "<=", sempre que eu colocar um número >= 12 (que é o tamanho da string do CPF), o código não passará na condição do CPF. Vou dar uma formulada no código, se conseguir resolver encerro o tópico.
  12. Você rodou o código que mandei e fez o exemplos que tem nas imagens? Consegue dar um panorama do que possa estar acontecendo?
  13. Compreendi agora, para mim colocar o código todo aqui no site (ainda mais com tantas linhas) seria tipo uma "poluição do post". Obrigado novamente.
  14. Em relação a isto: Acredito que me pronunciei da forma errada, na verdade é quando igualo ou sobreponho o tamanho da string nome[ ] em relação a string cpf[ ], por exemplo: quando CANOME é <= 11, o código roda corretamente. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define CAID 10 #define CANOME 11 // <= 11 o código funciona #define CACPF 12 typedef struct A { char id[CAID]; char nome[CANOME]; char cpf[CACPF]; struct A *esquerdo; struct A *direito; short altura; }stc_Aluno; Já quando CANOME >= 12 o código não consegue mais detectar se o CPF digitado já existe no banco de dados. #include <string.h> #include <ctype.h> #define CAID 10 #define CANOME 12 // >= 12 o código não funciona #define CACPF 12 typedef struct A { char id[CAID]; char nome[CANOME]; char cpf[CACPF]; struct A *esquerdo; struct A *direito; short altura; }stc_Aluno; Abaixo estarei enviando o código em arquivo.txt, tirei os caracteres emojis para uma melhor visualização nos compiladores. Código.txt Eu aceito qualquer crítica, levo como aprendizado, sua opinião importa muito para mim.
  15. Ok, vou reconfigurar o código e daqui a pouco posto aqui, desculpe a minha burrice ou ingenuidade.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!