PHP ::: Sistemas Completos com Código Fonte ::: Projetos PHP com Código Fonte - Códigos Fonte PHP |
Calendário de Eventos em PHP e MySQL - Código fonte completo com opções de cadastrar, listar, excluir, editar e listar eventosQuantidade de visualizações: 9917 vezes |
Aprenda como criar um Calendário de Eventos completo em PHP e MySQL. Código-fonte completo e comentado para programadores de nível iniciante e médio. Sobre este projeto PHP e MySQL Que tal aprender ou aprimorar as suas técnicas de programação em PHP e MySQL desenvolvendo um Calendário de Eventos completo, com as opções de cadastrar, listar, excluir, alterar e listar os eventos. Veja na imagem abaixo a tela inicial do sistema: ![]() O que vou aprender neste código fonte? Além de aprender como gravar dados em uma tabela MySQL usando PHP, você verá, de forma prática e sem enrolação, como ler os dados de volta, editar, listar e pesquisar. Porém, o mais importante é que você aprenderá a construir um calendário usando PHP. Essa é uma técnica que você poderá levar para várias outras linguagens. Uma característica interessante deste código é o uso de uma janela modal feita usando apenas HTML e CSS. Essa janela é exibida por cima do calendário ao clicarmos em um determinado evento. Veja: ![]() O código jQuery para exibir a janela é bem simples e poderá ser usado para várias outras aplicações. Além disso, o código para a requisição Ajax abrirá um mundo de possibilidades. Veja agora a tela para a criação de novos eventos: ![]() Para a construção desta tela de cadastro você aprenderá a usar os controles date e time do HTML5 para deixar seus códigos ainda mais robustos. Nesta tela você aprenderá também a validar os campos e exibir mensagens alertando ao usuário a necessidade do preenchimento correto. Para finalizar, veja a tela que lista todos os eventos cadastrados: ![]() Nesta tela de listagem você aprenderá a colocar as opções para a visualização individual de cada evento assim como as opções de editar ou excluir os eventos. Como posso obter este código fonte? Para adquirir este código fonte, me chama no WhatsApp ou no e-mail indicados na lateral do site. Se necessário podemos combinar e faço a instalação na sua máquina ou no seu domínio. Podemos também combinar as alterações ou a adição de novas funcionalidades. |
Node.js ::: Node.js + MongoDB ::: Passos Iniciais |
Node.js MongoDB - Como instalar o driver do MongoDB no Node.js e efetuar uma conexão Node.js + MongoDBQuantidade de visualizações: 1526 vezes |
Assumindo que você já conhece o banco de dados MongoDB, já fez sua instalação e já está um pouco familiarizado com suas características, nesta dica mostrarei como podemos efetuar uma conexão Node.js + MongoDB. Este é o passo inicial para desenvolver aplicações MEAN (Mongo, Express, Angular, Node) ou MERN (Mongo, Express, React, Node). Note que, nessa dica, usarei apenas o MongoClient para efetuar a conexão com o banco de dados MongoDB. Em outras dicas eu abordo o Mongoose. Então vamos iniciar. A primeira coisa que temos que fazer é instalar o driver MongoDB. Assim, com o Node.js devidamente instalado e funcionando, e com o banco MongoDB em perfeito funcionamento também, abra uma janela de terminal e digite o comando: npm install mongodb Após alguns minutos, a instalação será concluída e teremos o seguinte resultado: + mongodb@3.6.4 added 17 packages from 9 contributors and audited 20 packages in 9.358s 1 package is looking for funding run `npm fund` for details found 0 vulnerabilities Agora já podemos escrever o código que efetua a conexão Node.js com o MongoDB. Abra o seu editor de códigos favorito e digite a listagem abaixo: // vamos obter uma referência ao MongoClient var MongoClient = require('mongodb').MongoClient; // vamos nos conectar à base de dados escola var url = 'mongodb://localhost:27017/escola'; // Vamos nos conectar ao servidor e base de dados. Atenção: Em caso de erro, a // função pode demorar a retornar, pois o Node.js pode pensar que é lentidão // na rede MongoClient.connect(url, {useUnifiedTopology: true}, function(err, db) { if(err){ console.log("Não foi possível efetuar a conexão. Erro: " + err); } else{ console.log("Conexão efetuada com sucesso."); } // finalmente vamos fechar a conexao if(db){ db.close(); } }); Salve este código como conexao.js e execute-o no Node.js (com o MongoDB rodando, é claro) com o seguinte comando: c:\estudos_nodejs>node conexao.js Se tudo correr bem você verá a mensagem: Conexão efetuada com sucesso. Veja que, nesse código, eu efetuei uma conexão com a base de dados escola. Se a porta e o servidor estiverem corretos (talvez você tenha que informar um usuário e senha também), a conexão será efetuada com sucesso mesmo que a base de dados não exista. Quando informamos uma base de dados inexistente, o MongoDB entende que queremos criá-la, mas ele só a cria de fato, quando solicitamos a criação de uma nova coleção. Em mais dicas dessa seção você aprenderá como criar coleções no MongoDB a partir de seus códigos Node.js. Até lá e bons estudos. |
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como testar condições em Python usando a estrutura condicional if...elif...else (se, senão se, senão)Quantidade de visualizações: 9989 vezes |
A instrução condicional if (se) é usada para verificar uma condição na linguagem Python. Se esta condição for verdadeira, um bloco de códigos é executado. Opcionalmente um bloco de códigos pode também ser executado caso a condição seja falsa. Veja um exemplo: def main(): numero = 10 valor = int(input("Informe um inteiro: ")) if valor == numero: print("Parabéns, você acertou de primeira") print("Já tentou a Megasena?") elif valor < numero: print("Tente um número maior") else: print("Tente um número menor") if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: Informe um inteiro: 3 Tente um número maior Observe que as instruções a serem executadas em um bloco são agrupadas por indentação. |
CSS ::: Dicas & Truques ::: Barras de Navegação, Menus e Dropdowns |
Como criar uma barra de navegação horizontal com menu dropdown em HTML e CSS - Menu suspenso usando CSSQuantidade de visualizações: 907 vezes |
Nesta dica mostrarei como podemos usar uma combinação de várias propriedades CSS para criar um menu suspenso, ou seja, uma barra de navegação contendo links normais e também links que, ao passar o mouse, exibe uma lista de sub-menus. O código apresentado neste exemplo é muito útil para estudantes de HTML e CSS, pois apresenta várias propriedades interessantes para melhorar o visual e a usabilidade de suas páginas web. Entre as propriedades CSS usadas na criação deste menu suspenso nós podemos citar overflow, margin, padding, list-style-type, background-color, display, float, text-align, text-decoration, position, min-width e z-index. Note que coloquei o mínimo de código para fazer a barra de menus funcional. Fique à vontade para acrescentar as formatações que você achar interessante. Veja a página HTML e CSS para o exemplo: <!doctype html> <html> <head> <title>Estudos CSS</title> <style> /* estiliza o elemento <ul> */ ul{ background-color: #e0e0e0; margin: 0; padding: 0; overflow: hidden; list-style-type: none; } /* aplica estilo aos elementos <li> */ li{ float: left; } /* aplica estilo aos links e <li> do sub-menu */ li a, .dropdown_linguagens{ display: inline-block; text-align: center; padding: 10px 15px; text-decoration: none; } /* define o display do <li> de linguagens */ li.linguagens{ display: inline-block; } /* aplica estilo ao menu de linguagens */ .menus_linguagens{ display: none; position: absolute; background-color: #eceff1; min-width: 160px; z-index: 1; } /* aplica estilo aos links do sub-menu */ .menus_linguagens a { padding: 10px 15px; text-decoration: none; display: block; text-align: left; } /* exibe o sub-menu ao passar o mouse */ .linguagens:hover .menus_linguagens{ display: block; } /* aplica uma cor diferente aos menus ao passar o mouse */ .menus_linguagens a:hover{ background-color: #cfd8dc; } </style> </head> <body> <h1>Exemplo de Barra de Navegação com Menu Dropdown</h1> <ul> <li><a href="index.php">Inicial</a></li> <li class="linguagens"> <a href="javascript:void(0)" class="dropdown_linguagens"> Linguagens</a> <div class="menus_linguagens"> <a href="java.php">Java</a> <a href="python.php">Python</a> <a href="ruby.php">Ruby</a> <a href="delphi.php">Delphi</a> </div> </li> </ul> </body> </html> |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a transposta de uma matriz em Java - Java para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 3476 vezes |
A matriz transposta de uma matriz A é a matriz AT. Tal matriz é obtida quando copiamos os elementos da matriz A para uma outra matriz (ou para ela mesma) e trocamos de posição as linhas e colunas. Dessa forma, a primeira linha da matriz A se transforma na primeira coluna da matriz transposta, a segunda linha da matriz A se transforma na segunda coluna da matriz transposta e assim por diante. Em termos de notação, podemos dizer, de forma algébrica, que: ATji = Aij Onde i representa as linhas e j representa as colunas, tanto na matriz original quanto na matriz transposta. É importante estar atento à quantidade de linhas e colunas na matriz original e na matriz transposta equivalente. Assim, se a matriz original for 3x2, a matriz transposta será 2x3. Antes de vermos o código Java, dê uma olhada na seguinte matriz de duas linhas e três colunas: \[A = \left[\begin{matrix} 3 & 5 & 7 \\ 1 & 2 & 9 \end{matrix}\right] \] Sua matriz transposta correspondente é: \[A^T = \left[\begin{matrix} 3 & 1 \\ 5 & 2 \\ 7 & 9 \end{matrix}\right] \] E agora veja o código Java que declara uma matriz 2x3 e gera a matriz transposta 3x2: package arquivodecodigos; public class Estudos{ public static void main(String args[]){ // vamos declarar e construir uma matrix // 2x3 (duas linhas e três colunas int matriz[][] = {{3, 5, 7}, {1, 2, 9}}; // vamos exibir os valores da matriz System.out.println("Elementos da matriz:"); for(int i = 0; i < matriz.length; i++){ for(int j = 0; j < matriz[0].length; j++){ System.out.printf("%5d ", matriz[i][j]); } System.out.println(); } // como temos uma matriz 2x3, a transposta deverá ser // 3x2, ou seja, três linhas e duas colunas int linhas = matriz.length; // linhas da matriz original int colunas = matriz[0].length; // colunas da matriz original int transposta[][] = new int[colunas][linhas]; // e agora vamos preencher a matriz transposta for(int i = 0; i < matriz.length; i++){ for(int j = 0; j < matriz[0].length; j++){ transposta[j][i] = matriz[i][j]; } } // vamos exibir os valores da matriz transposta System.out.println("Elementos da matriz transposta:"); for(int i = 0; i < transposta.length; i++){ for(int j = 0; j < transposta[0].length; j++){ System.out.printf("%5d ", transposta[i][j]); } System.out.println(); } } } Ao executar este código Java nós teremos o seguinte resultado: Elementos da matriz: 3 5 7 1 2 9 Elementos da matriz transposta: 3 1 5 2 7 9 |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como pesquisar um valor em um vetor de inteiros em CQuantidade de visualizações: 9475 vezes |
Em algumas situações precisamos verificar se um determinado valor está contido em uma matriz de inteiros em C. Nesta dica eu mostro como isso pode ser feito usando a pesquisa ou busca linear. Veja o código completo comentado:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // vamos declarar e inicializar uma matriz de cinco inteiros int valores[] = {3, 8, 2, 1, 4}; int encontrei = 0; // vamos inicializar encontrei como falso int i; // variável de controle do laço int valor = 2; // valor a ser pesquisado // vamos percorrer os elementos da matriz e verificar se o valor // informado está contido na mesma for(i = 0; i < 5; i++){ // o valor pesquisado é igual ao valor do elemento atual? if(valores[i] == valor){ encontrei = 1; // encontrei agora é verdadeiro break; // vamos sair do laço } } // vamos mostrar o resultado if(encontrei) printf("O valor pesquisado esta contido na matriz"); else printf("O valor pesquisado NAO esta contido na matriz"); printf("\n\n"); system("pause"); return 0; } Ao executar este trecho de código teremos o seguinte resultado: O valor pesquisado está contido na matriz. |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em Java - Java OOP - Como chamar o construtor de uma superclasse a partir da classe derivadaQuantidade de visualizações: 19231 vezes |
Em algumas situações, é necessário efetuar uma chamada ao construtor de uma superclasse a partir da sub-classe, ou classe derivada. Principalmente quando temos que inicializar dados privados pertencentes à superclasse. Imaginemos o seguinte cenário: uma classe Pessoa cujo construtor recebe o nome e idade da pessoa. Temos então uma classe Aluno que herda de pessoa e cujo construtor recebe nome, idade e matrícula. Desta forma, temos aqui uma boa oportunidade para efetuarmos uma chamada ao construtor da superclasse a partir da classe derivada. Comece criando a classe Pessoa (Pessoa.java): public class Pessoa{ public String nome; public int idade; // construtor da classe public Pessoa(String nome, int idade){ this.nome = nome; this.idade = idade; } } Compile Pessoa.java. Agora vamos criar um classe Aluno (Aluno.java) que herda da classe Pessoa: public class Aluno extends Pessoa{ public String matricula; // construtor public Aluno(String nome, int idade, String matricula){ // chama o construtor da superclasse super(nome, idade); this.matricula = matricula; } } Compile Aluno.java e escreva o programa abaixo, que demonstra como a chamada ao construtor da superclasse é feita a partir da subclasse, ou classe derivada: public class Estudos{ public static void main(String args[]){ // cria um objeto da classe Aluno Aluno aluno = new Aluno("Osmar J. Silva", 36, "AC434-23"); // Exibe o resultado System.out.println("Nome: " + aluno.nome + "\n" + "Idade: " + aluno.idade + "\n" + "Matrícula: " + aluno.matricula); } } Execute este código e observe alguns detalhes interessantes. O mais importante é a forma de chamar o construtor da superclasse: // chama o construtor da superclasse super(nome, idade); Veja como recebemos três variáveis no construtor da classe Aluno e passamos duas delas para o construtor da superclasse. |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Como obter os modificadores dos métodos de uma classe ou interface usando o método getModifiers() da classe Method da linguagem JavaQuantidade de visualizações: 8629 vezes |
O método getModifiers() da classe Method permite obter os modificadores (public, static, final, private, etc) de um determinado método. O retorno deste método é um valor inteiro que pode ser testado usando alguns métodos estáticos da classe Modifier. O exemplo a seguir mostra como listar todos os métodos públicos da classe javax.swing.JButton e seus modificadores: package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe JButton try{ Class c = Class.forName( "javax.swing.JButton"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); for(int i = 0; i < metodos.length; i++){ // obtém o nome do método String nome = metodos[i].getName(); // obtém os modificadores int modificador = metodos[i].getModifiers(); String modificadores = ""; if(Modifier.isPublic(modificador)) modificadores += "public "; if(Modifier.isPrivate(modificador)) modificadores += "private "; if(Modifier.isProtected(modificador)) modificadores += "protected "; if(Modifier.isStatic(modificador)) modificadores += "static "; if(Modifier.isFinal(modificador)) modificadores += "final "; System.out.println(nome + " - " + modificadores); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Ao executar este exemplo nós teremos uma lista gigantesca de métodos declarados e herdados pela classe javax.swing.JButton. Veja: getAccessibleContext - public getUIClassID - public isDefaultButton - public isDefaultCapable - public removeNotify - public setDefaultCapable - public updateUI - public getUI - public setAction - public setModel - public setUI - public addActionListener - public addChangeListener - public addItemListener - public doClick - public doClick - public getAction - public getActionCommand - public getActionListeners - public getChangeListeners - public getDisabledIcon - public getDisabledSelectedIcon - public getDisplayedMnemonicIndex - public getHideActionText - public getHorizontalAlignment - public getHorizontalTextPosition - public getIcon - public getIconTextGap - public getItemListeners - public getLabel - public getMargin - public getMnemonic - public getModel - public getMultiClickThreshhold - public getPressedIcon - public getRolloverIcon - public getRolloverSelectedIcon - public getSelectedIcon - public getSelectedObjects - public getText - public getVerticalAlignment - public getVerticalTextPosition - public imageUpdate - public isBorderPainted - public isContentAreaFilled - public isFocusPainted - public isRolloverEnabled - public isSelected - public removeActionListener - public removeChangeListener - public removeItemListener - public setActionCommand - public setBorderPainted - public setContentAreaFilled - public setDisabledIcon - public setDisabledSelectedIcon - public setDisplayedMnemonicIndex - public setEnabled - public setFocusPainted - public setHideActionText - public setHorizontalAlignment - public setHorizontalTextPosition - public setIcon - public setIconTextGap - public setLabel - public setLayout - public setMargin - public setMnemonic - public setMnemonic - public setMultiClickThreshhold - public setPressedIcon - public setRolloverEnabled - public setRolloverIcon - public setRolloverSelectedIcon - public setSelected - public setSelectedIcon - public setText - public setVerticalAlignment - public setVerticalTextPosition - public update - public contains - public getLocation - public print - public getSize - public isOpaque - public disable - public enable - public firePropertyChange - public firePropertyChange - public firePropertyChange - public getRootPane - public getListeners - public paintImmediately - public paintImmediately - public repaint - public repaint - public revalidate - public setAlignmentX - public setAlignmentY - public addAncestorListener - public addNotify - public addVetoableChangeListener - public computeVisibleRect - public createToolTip - public getActionForKeyStroke - public getActionMap - public final getAlignmentX - public getAlignmentY - public getAncestorListeners - public getAutoscrolls - public getBaseline - public getBaselineResizeBehavior - public getBorder - public getBounds - public getClientProperty - public final getComponentPopupMenu - public getConditionForKeyStroke - public getDebugGraphicsOptions - public getDefaultLocale - public static getFontMetrics - public getGraphics - public getHeight - public getInheritsPopupMenu - public getInputMap - public final getInputMap - public final getInputVerifier - public getInsets - public getInsets - public getMaximumSize - public getMinimumSize - public getNextFocusableComponent - public getPopupLocation - public getPreferredSize - public getRegisteredKeyStrokes - public getToolTipLocation - public getToolTipText - public getToolTipText - public getTopLevelAncestor - public getTransferHandler - public getVerifyInputWhenFocusTarget - public getVetoableChangeListeners - public getVisibleRect - public getWidth - public getX - public getY - public grabFocus - public hide - public isDoubleBuffered - public isLightweightComponent - public static isManagingFocus - public isOptimizedDrawingEnabled - public isPaintingForPrint - public final isPaintingTile - public isRequestFocusEnabled - public isValidateRoot - public paint - public printAll - public putClientProperty - public final registerKeyboardAction - public registerKeyboardAction - public removeAncestorListener - public removeVetoableChangeListener - public requestDefaultFocus - public requestFocus - public requestFocus - public requestFocusInWindow - public resetKeyboardActions - public reshape - public scrollRectToVisible - public setActionMap - public final setAutoscrolls - public setBackground - public setBorder - public setComponentPopupMenu - public setDebugGraphicsOptions - public setDefaultLocale - public static setDoubleBuffered - public setFocusTraversalKeys - public setFont - public setForeground - public setInheritsPopupMenu - public setInputMap - public final setInputVerifier - public setMaximumSize - public setMinimumSize - public setNextFocusableComponent - public setOpaque - public setPreferredSize - public setRequestFocusEnabled - public setToolTipText - public setTransferHandler - public setVerifyInputWhenFocusTarget - public setVisible - public unregisterKeyboardAction - public add - public add - public add - public add - public add - public remove - public remove - public list - public list - public removeAll - public addPropertyChangeListener - public addPropertyChangeListener - public getComponent - public getComponentCount - public getComponents - public getFocusTraversalPolicy - public invalidate - public isFocusCycleRoot - public isFocusCycleRoot - public setFocusTraversalPolicy - public addContainerListener - public applyComponentOrientation - public areFocusTraversalKeysSet - public countComponents - public deliverEvent - public doLayout - public findComponentAt - public findComponentAt - public getComponentAt - public getComponentAt - public getComponentZOrder - public getContainerListeners - public getFocusTraversalKeys - public getLayout - public getMousePosition - public insets - public isAncestorOf - public isFocusTraversalPolicyProvider - public final isFocusTraversalPolicySet - public layout - public locate - public minimumSize - public paintComponents - public preferredSize - public printComponents - public removeContainerListener - public setComponentZOrder - public setFocusCycleRoot - public setFocusTraversalPolicyProvider - public final transferFocusDownCycle - public validate - public add - public remove - public toString - public getName - public contains - public size - public getLocation - public getParent - public setName - public list - public list - public list - public getSize - public location - public setSize - public setSize - public resize - public resize - public enable - public firePropertyChange - public firePropertyChange - public firePropertyChange - public firePropertyChange - public firePropertyChange - public action - public isEnabled - public isFocusOwner - public removePropertyChangeListener - public removePropertyChangeListener - public repaint - public repaint - public repaint - public getBackground - public getBounds - public getFocusCycleRootAncestor - public getFont - public getForeground - public getPeer - public getPropertyChangeListeners - public getPropertyChangeListeners - public getTreeLock - public final isDisplayable - public isMaximumSizeSet - public isMinimumSizeSet - public isPreferredSizeSet - public isShowing - public isVisible - public nextFocus - public setBounds - public setBounds - public setLocale - public setLocation - public setLocation - public dispatchEvent - public final getGraphicsConfiguration - public getMousePosition - public handleEvent - public isFocusable - public isLightweight - public isValid - public postEvent - public transferFocus - public transferFocusBackward - public addComponentListener - public addFocusListener - public addHierarchyBoundsListener - public addHierarchyListener - public addInputMethodListener - public addKeyListener - public addMouseListener - public addMouseMotionListener - public addMouseWheelListener - public bounds - public checkImage - public checkImage - public createImage - public createImage - public createVolatileImage - public createVolatileImage - public enableInputMethods - public getColorModel - public getComponentListeners - public getComponentOrientation - public getCursor - public getDropTarget - public getFocusListeners - public getFocusTraversalKeysEnabled - public getHierarchyBoundsListeners - public getHierarchyListeners - public getIgnoreRepaint - public getInputContext - public getInputMethodListeners - public getInputMethodRequests - public getKeyListeners - public getLocale - public getLocationOnScreen - public getMouseListeners - public getMouseMotionListeners - public getMouseWheelListeners - public getToolkit - public gotFocus - public hasFocus - public inside - public isBackgroundSet - public isCursorSet - public isFocusTraversable - public isFontSet - public isForegroundSet - public keyDown - public keyUp - public lostFocus - public mouseDown - public mouseDrag - public mouseEnter - public mouseExit - public mouseMove - public mouseUp - public move - public paintAll - public prepareImage - public prepareImage - public removeComponentListener - public removeFocusListener - public removeHierarchyBoundsListener - public removeHierarchyListener - public removeInputMethodListener - public removeKeyListener - public removeMouseListener - public removeMouseMotionListener - public removeMouseWheelListener - public setComponentOrientation - public setCursor - public setDropTarget - public setFocusTraversalKeysEnabled - public setFocusable - public setIgnoreRepaint - public show - public show - public transferFocusUpCycle - public wait - public final wait - public final wait - public final equals - public hashCode - public getClass - public final notify - public final notifyAll - public final |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizadaQuantidade de visualizações: 177 vezes |
Há muitos anos eu precisava remover espaços no final de uma string em JavaScript e percebi que o objeto String, na época, não oferecia a função trim(). Não me restou opção a não ser sentar e escrever o código na mão mesmo. Hoje em dia não precisamos mais dele, mas fica aí para que você entenda a lógica empregada na resolução do problema. Veja a página HTML completa com o exemplo: <!doctype html> <html> <head> <title>Strings em JavaScript</title> </head> <body> <script type="text/javascript"> // função personalizada que remove os espaços // no final de uma string function trim_final(string){ // primeiro definimos o código do espaço var espaco = String.fromCharCode(32); // obtemos o tamanho da string var tamanho = string.length; // e criamos uma string temporária var temp = ""; // a string está vazia? if(tamanho < 0){ return ""; } // uma variável temporária para percorrermos // a string de trás para frente var temp2 = tamanho - 1; while(temp2 > -1){ if(string.charAt(temp2) == espaco){ // não faz nada } else{ temp = string.substring(0, temp2 + 1); break; } // decrementamos a variável temp2 temp2--; } return temp; } // vamos testar a função trim_final() var frase = "Gosto muito de JavaScript "; document.write("Com espaços no final: " + frase + "#" + "<br>"); // vamos remover os espaços no final da string frase = trim_final(frase); document.write("Sem espaços no final: " + frase + "#" + "<br>"); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Com espaços no final: Gosto muito de JavaScript # Sem espaços no final: Gosto muito de JavaScript# |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como adicionar um JPopupMenu a um JTextAreaQuantidade de visualizações: 100 vezes |
Neste exemplo mostrarei como é possível associar um JPopupMenu a um JTextArea. Dessa forma, quando clicarmos com o botão auxiliar na área de texto, nós teremos algumas opções de menu, tais como copiar, colar, selecionar tudo, etc. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para o exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ JTextArea textArea; JPopupMenu popup; JMenuItem selecionar; public Estudos() { super("Uso de JPopupMenu em um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); JScrollPane scrollPane = new JScrollPane(textArea); textArea.addMouseListener( new MouseAdapter(){ @Override public void mouseReleased(MouseEvent e){ if(e.isPopupTrigger()) popup.show(e.getComponent(), e.getX(), e.getY()); } } ); // cria o JPopupMenu popup = new JPopupMenu(); selecionar = new JMenuItem("Selecionar Tudo"); selecionar.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent ev){ textArea.requestFocus(); textArea.selectAll(); } } ); popup.add(selecionar); // fim menu c.add(scrollPane); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |