Ir para conteúdo

klonder

Members
  • Total de itens

    959
  • Registro em

  • Última visita

  • Dias vencidos

    2

klonder venceu o dia em Setembro 21 2009

Teve o conteúdo mais curtido

Reputação

14 Levemente Bom

Sobre klonder

  • Classificação
    Klonder
  • Data de Nascimento 09/11/1981

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Brasília
  • Interesses
    JavaFx, Android.
  1. klonder

    Máscaras para TextField em JavaScript

    Tentei incluir a máscara a seguir em um POST meu antigo, porém está fechado para novas respostas: Todavia, para futuras consultas minhas e também para ajudar outras pessoas, venho deixar uma máscara interessante que acabei de terminar em JavaScript. Ficou muito menor que a do POST acima: <script type="text/javascript"> var iCount1; var trava = false; function MaskDown(e) { if (trava == false) { iCount1 = e.value.length; trava = true; } } function MaskUp(e,mascara) { if (trava) { var textoLimpo = e.value.substr(0,iCount1+1).replace(/[\/\:\-\.]/g,""); var texto = ""; var iM = 0; var iT = 0; while (iM < mascara.length) { if (iT < textoLimpo.length) { if (mascara.substr(iM,1) == "#") { texto += textoLimpo.substr(iT,1); iT++; } else { texto += mascara.substr(iM,1); } } iM++; } e.value = texto; trava = false; } } </script> Para funcionar, basta incluir em suas tags input os eventos, como demonstrado a seguir: <input type="text" id="tfData" onkeydown="MaskDown(this)" onkeyup="MaskUp(this,'##/##/####')" placeholder="dd/mm/aaaa" style="width:80px" /> <br /><input type="text" id="tfHora" onkeydown="MaskDown(this)" onkeyup="MaskUp(this,'##:##')" placeholder="hh:mm" style="width:50px"/> À medida que o usuário vai digitando, o valor campo vai sendo formatado. Pode ser usado para CPF, CEP, RG, dentre outros... Divirtam-se!
  2. klonder

    TreeTableView - Excluir várias linhas

    Fiz uma correção no código e esse problema foi corrigido (já corrigi no post acima). Ocorria em algumas situações dependendo da posição do ID. Agora o código acima está funcionando perfeitamente! Só que está funcionando do jeito que está... Eu gostaria de saber se seria possível fazer de outra forma, como: ol_OUTRASDESPESAS.RemoveAll(ol_T)
  3. klonder

    TreeTableView - Excluir várias linhas

    Olá a todos! Pesquisei em vários locais, inclusive aqui no fórum, e não encontrei nenhuma resposta sobre a seguinte situação: Tenho um TreeTableView que carrega vários itens vindos do Banco de Dados. De acordo com a característica de cada item, eles são divididos em nós previamente especificados (são apenas estes nós pré-estabelecidos). Exemplo dos Nós: Materiais, Medicamentos, Taxas, Aluguéis... Em um determinado momento, preciso imprimir essa TreeTableView, excluindo algumas linhas que são desnecessárias. Quanto à impressão está tudo ok. Mas, para ganhar tempo, eu preciso excluir várias linhas de uma vez dessa TreeTableView, apertando o Shift e clicando/selecionando todas as linhas que deverão ser excluídas. Antes de postar o método que encontrei, vou detalhar como estou fazendo: Quando abro a TreeTableView, os dados originados do Banco de Dados são salvos em um ObservableList<itens> ol_OUTRASDESPESAS. Esse ObservableList é então processado e a TreeTableView é criada com cada item em seu nó específico. Preciso então imprimir essa TreeTableView, mas para isso, em alguns casos, preciso excluir várias linhas ao mesmo tempo. O que estou fazendo: Crio uma ObservableList transitória (ol_TEMP) com todas as linhas que estão selecionadas. Criei um laço for que percorre todos os itens da ol_OUTRASDESPESAS e um laço interno que percorre todos os itens da ol_TEMP. Dentro desses laços verifico se existe um ID dentro de ol_TEMP que seja igual ao id de ol_OUTRASDESPESAS. Se os IDs forem iguais, eu excluo o item de ol_OUTRASDESPESAS. private void excluirItem_OutrasDespesas() { ObservableList<TreeItem<objOutrasDespesas>> ol_T = FXCollections.observableArrayList(ttvOutrasDespesas.getSelectionModel().getSelectedItems()); //Percorrendo todos os itens do ol_OUTRASDESPESAS. Se o item atual estiver na lista de excluídos, excluir. for (int j = 0; j<ol_T.size(); j++) { for (int i = 0; i<ol_OUTRASDESPESAS.size(); i++) { if (Objects.equals(ol_OUTRASDESPESAS.get(i).getId(), ol_T.get(j).getValue().getId())) { //System.out.println("Removendo: "+ol_OUTRASDESPESAS.get(i).getItem()); ol_OUTRASDESPESAS.remove(i); } } } estruturaBasica(); } estrutura() é apenas uma chamada ao método para reconstruir a TreeTableView. Essa foi a maneira que encontrei para excluir os itens selecionados, porém não creio que seja a melhor. Sei que em Java existe o método removeAll, porém não consegui aplicar nesse caso. A minha dúvida é a seguinte: Existe outra opção melhor do que essa? Consigo evitar todos esses loops necessários para excluir todos os itens selecionados?
  4. klonder

    Por onde começar?

    O início é bem complicado. Eu não sabia absolutamente nada de nada! Não sabia como a coisa funcionava!!! Não sabia nem que era necessário um tal de NetBeans ou Eclipse para facilitar nossa vida! Resumindo: eu era uma anta! Como pode perceber, eu comecei do zero em Java! E olha que eu já tinha conhecimentos em JavaScript, PHP, ASP, HTML, CSS e MySQL! Java é diferente de tudo isso! Muitos dirão que a linguagem é semelhante, que é orientada a objetos... e um monte de coisa semelhante, mas pra mim tudo era diferente! Hoje estou quase com um projeto completo em JAVAFX, com relatórios em JasperReports maravilhosos! Cálculos e relatórios, com orçamentos, tudo ótimo! Mas até chegar a esse ponto, vi muitos vídeos no youtube! Muitos! Estudei as apostilas da Caelum e tive ajuda do Google. Pra quem é autodidata e não quer gastar, não tem outra maneira! É google, youtube e Caelum na veia!!! Se você puder gastar, compre um bom livro ou faça um curso (a base sem dúvida será melhor que a minha). Minha dica: Se você tiver tempo, eu sugiro, de verdade, aprender javascript primeiro. Você consegue fazer tudo com bloco de notas e ir testando de modo rápido! Assim que estiver bom nos algoritmos, pode passar para o java, aprender a conectar à base de dados, alterar elementos na tela, aplicar eventos, etc. O aprendizado deve ser diário. Em breve as coisas passarão a fazer sentido e você saberá o que fazer! Às vezes eu não sei exatamente o caminho, mas eu sei para onde devo ir, e isso fará parte de toda a sua vida de programador. Ninguém sabe tudo, você sempre fará pesquisas atrás de saídas para seus códigos!
  5. klonder

    Idade em JAVAFX, em anos, meses e dias.

    Olá a todos! Todos sabemos o quanto é difícil para o Java retornar, de modo fácil, a idade no formato: anos, meses e dias. Não estou me referindo a retornar o tempo entre duas datas em anos, o mesmo tempo em meses ou o mesmo em dias. Refiro-me a retornar quanto tempo uma determinada pessoa tem de vida, exemplo: 30 anos, 12 meses e 4 dias de vida. Sabemos ainda que existem os anos bissextos, o que complica o cálculo em algumas situações. O JAVA não nos ajuda de modo automático, como em alguma outra linguagem. Pensando nisso, desenvolvi um método que analisa as diversas situações e resolvi compartilhar, para outros colegas e para minhas consultas futuras. O método recebe como parâmetro uma data no formato yyyy-MM-dd (escolhi esse formato pois já vem do banco de dados) e retorna a idade no formato: 30a 4m 2d. JAVAFX: Retornar idade em anos, meses e dias: public String Idade(String dt_nasc) {//yyyy-MM-dd Calendar calHoje = GregorianCalendar.getInstance(); int diah = calHoje.get(Calendar.DAY_OF_MONTH); int mesh = calHoje.get(Calendar.MONTH) + 1; int anoh = calHoje.get(Calendar.YEAR); // Data do nascimento. String[] quebraDN = dt_nasc.split("-"); int dian = Integer.valueOf(quebraDN[2]); int mesn = Integer.valueOf(quebraDN[1]); int anon = Integer.valueOf(quebraDN[0]); String strNiver = anoh+"-"+mesn+"-"+dian; Calendar calNiver = Calendar.getInstance(); try { calNiver.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(strNiver)); } catch (ParseException ex) { Logger.getLogger(FormataData.class.getName()).log(Level.SEVERE, null, ex); } int anos = (calHoje.getTimeInMillis() < calNiver.getTimeInMillis())? (anoh-anon-1):anoh-anon ; int meses; int dias; meses = mesh - mesn; if (meses > 0) {//Verificando se já fez aniversário ou não if (diah < dian) { meses--; } } else if (meses < 0) {//Se o mês atual for menor que o mês do aniversário meses = 12 + meses;//Lembrar que meses está negativo, por isso a soma; //Da mesma forma, vamos comparar o dia atual com o dia do aniversário, para sabermos se o mês está completo ou não: if (diah < dian) { meses--; } } else {//Se o mês atual for o mês do aniversário: if (diah<dian) { meses = 11; } } dias = diah - dian; if (dias < 0) {//Se dia hoje menor que dia do niver, somar os dias desde o mês anterior: if (mesh==5||mesh==7||mesh==8||mesh==10||mesh==12) { dias = 30-dian+diah; } else if (mesh==1||mesh==2||mesh==4||mesh==6||mesh==9||mesh==11) { dias = 31-dian+diah; } else {//Verificando se o ano é bissexto ou não: Esse else é para o mês 3, cujo anterior é fevereiro: if (anoh%4 == 0) { dias = 29-dian+diah; } else { dias = 28-dian+diah; } } } System.out.println(anos+"a "+meses+"m "+dias+"d"); return anos+"a "+meses+"m "+dias+"d"; } Basta invocar o método através do evento de algum outro objeto, ou mesmo durante execução. Divirtam-se!
  6. Olá a todos! Sou iniciante em JavaFx. Após inúmeras pesquisas, encontrei um código em JavaFX que altera as cores das linhas de uma TableView de acordo com os dados retornados pelo banco de dados. Utilizando CSS, é possível alterar background, cor das letras, etc... @FXML private TableView tvOrcMedPrescricao; //Referência ao id da TableView (colocar o código dentro de: public void initialize(URL url, ResourceBundle rb) {) tvOrcMedPrescricao.setRowFactory(tv -> { return new TableRow<objPrescricao>() { @Override public void updateItem(objPrescricao item, boolean empty) { super.updateItem(item, empty) ; if (item == null) { setStyle(""); } else if (item.getVia().equals("ENDOVENOSA")) { setStyle("-fx-text-background-color: #AAA;"); //setStyle("-fx-background-color: #0080FF;"); } else { //setStyle("-fx-background-color: #0080FF;"); } } }; }); Espero que seja útil!
  7. klonder

    Máscara flexível para TextField em JavaFx

    Olá a todos(as)! Esse é um assunto bastante discutido, porém não encontrei nenhum tópico com um código menor do que esse que desenvolvi e venho compartilhar com vocês (servindo também para minhas consultas futuras). Venho deixar um código para máscara (qualquer tipo, com praticamente quaisquer símbolos) em TextField. Nesse caso estou postando para CPF, mas o código pode ser facilmente alterado: tfCPF.lengthProperty().addListener((ObservableValue<? extends Number> observableValue, Number number, Number number2) -> { String mascara = "###.###.###-##"; String alphaAndDigits = tfCPF.getText().replaceAll("[\\-\\.]",""); StringBuilder resultado = new StringBuilder(); int i = 0; int quant = 0; if (number2.intValue() > number.intValue()) { if (tfCPF.getText().length() <= mascara.length()) { while (i<mascara.length()) { if (quant < alphaAndDigits.length()) { if ("#".equals(mascara.substring(i,i+1))) { resultado.append(alphaAndDigits.substring(quant,quant+1)); quant++; } else { resultado.append(mascara.substring(i,i+1)); } } i++; } tfCPF.setText(resultado.toString()); } if (tfCPF.getText().length() > mascara.length()) { tfCPF.setText(tfCPF.getText(0,mascara.length())); } } }); Obviamente cada usuário terá uma intenção (deixar apenas números, ou apenas letras, ou números e letras em locais pré-estabelecidos), por isso não adicionei essas condições no código acima. Isso poderá facilmente ser feito com expressões regulares ou com outro tipo de validação. Para alterar o tipo de máscara, basta alterar o formato da máscara e os caracteres nas variáveis: String mascara = "###.###.###-##"; String alphaAndDigits = tfCPF.getText().replaceAll("[\\-\\.]",""); É isso! Espero que seja útil para alguém! Abraços!
  8. klonder

    Fórum JavaFX

    Proponho a criação de um fórum apenas com assuntos relacionados a JavaFX (desvinculando do Java padrão). Há alguns anos fui moderador da área de JavaScript, porém por motivos pessoais tive que sair... e nesse tempo resolvi investir no JavaFX e programação Android. No Brasil há pouco suporte a JavaFX! Por isso, venho encarecidamente solicitar a abertura de uma área relacionada apenas a assuntos referentes a JavaFX para que seja referência no Brasil. Abraços!
  9. klonder

    Jogo dos Números

  10. klonder

    Jogo dos Números

  11. klonder

    Jogo dos Números

  12. klonder

    Jogo dos Números

  13. klonder

    Jogo dos Números

  14. klonder

    [Resolvido] Soma de campo em R$

    Tente converter a entrada das inputs para ponto flutuante com parseFloat; com parseFloat é possível realizar cálculos com ponto flutuante.
  15. klonder

    [Resolvido] Soma de campo em R$

    Com JavaScript é possível somar valores com ponto-flutuante. Como você quer exibir esses valores? Com pontos, vírgulas?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.