![]() |
|||||
|
Java ::: Pacote java.lang ::: StringBuffer |
Java do básico ao avançado - Como usar o método append() para adicionar mais conteúdo ao final de um StringBufferQuantidade de visualizações: 9453 vezes |
O método append() da classe StringBuffer se torna útil quando precisamos adicionar mais conteúdo ao final de um objeto desta classe. Este método possui, no Java 7, as seguintes sobrecargas: public StringBuffer append(Object obj) public StringBuffer append(String str) public StringBuffer append(StringBuffer sb) public StringBuffer append(CharSequence s) public StringBuffer append(CharSequence s, int start, int end) public StringBuffer append(char[] str) public StringBuffer append(char[] str, int offset, int len) public StringBuffer append(boolean b) public StringBuffer append(char c) public StringBuffer append(int i) public StringBuffer append(long lng) public StringBuffer append(float f) public StringBuffer append(double d) Note que em todas as sobrecargas do método, o retorno é um objeto da classe StringBuffer. Mas, não é um novo objeto StringBuffer. É uma referência ao objeto StringBuffer já existente. Veja um exemplo no qual usamos este método para adicionar mais duas palavras ao conteúdo do StringBuffer: package estudos; public class Estudos{ public static void main(String[] args) { // um StringBuffer contendo uma frase StringBuffer frase = new StringBuffer("Gosto muito de programar"); // vamos adicionar mais duas palavras ao final do StringBuffer frase.append(" em"); frase.append(" Java"); // agora mostramos o resultado System.out.println(frase); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Gosto muito de programar em Java |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como colorir as células de uma JTable individualmente ao passar o mouse sobre elasQuantidade de visualizações: 152 vezes |
Nesta dica eu mostro como é possível aplicar uma cor diferente às células individuais de uma JTable ao passar o mouse em cima delas. O efeito visual é muito interessante, principalmente quando temos uma JTable com muitos dados. No exemplo eu construí a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual. É um ótimo exercício para realmente entender as partes que compoem uma aplicação Java Swing. Veja o código Java completo: import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; import javax.swing.event.*; public class Estudos extends JFrame{ int linha, coluna; public Estudos(){ super("JTable"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); class CellListener extends MouseMotionAdapter{ public void mouseMoved(MouseEvent e){ JTable tb = (JTable)e.getSource(); linha = tb.rowAtPoint(e.getPoint()); coluna = tb.columnAtPoint(e.getPoint()); tb.repaint(); } } class ColorirCelula extends JLabel implements TableCellRenderer{ public ColorirCelula(){ setOpaque(true); } public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ if(row == linha && column == coluna){ this.setBackground(Color.yellow); } else{ this.setBackground(table.getBackground()); } this.setText(value.toString()); return this; } } Container c = getContentPane(); c.setLayout(new FlowLayout()); tabela.addMouseMotionListener(new CellListener()); tabela.setDefaultRenderer(Object.class, new ColorirCelula()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executarmos esta aplicação Java Swing nós teremos o seguinte resultado: ![]() |
Java ::: Coleções (Collections) ::: ArrayList |
Como inverter a ordem dos elementos de uma ArrayList do Java usando a função reverse() da classe CollectionsQuantidade de visualizações: 14312 vezes |
Nesta dica mostrarei como podemos usar o método estático reverse() da classe Collections para reverter (inverter) a ordem dos elementos de uma ArrayList. Note que este método atua diretamente sobre a ArrayList que estamos fornecendo como argumento, e não retorna nada. Veja o exemplo a seguir: package estudos_java; import java.util.ArrayList; import java.util.Collections; public class Estudos{ public static void main(String[] args){ // cria uma ArrayList que conterá strings ArrayList<String> nomes = new ArrayList<>(); // adiciona itens na lista nomes.add("Carlos"); nomes.add("Maria"); nomes.add("Fernanda"); nomes.add("Osmar"); // exibe os elementos da ArrayList for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } // Vamos inverter a ordem dos elementos Collections.reverse(nomes); // exibe os elementos da ArrayList System.out.println(); for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Carlos Maria Fernanda Osmar Osmar Fernanda Maria Carlos |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar a posição da última ocorrência de uma substring em uma string Java usando a função lastIndexOf() da classe StringQuantidade de visualizações: 223 vezes |
Em algumas situações nós precisamos pesquisar uma substring em uma string Java e retornar o índice da última ocorrência encontrada. Para isso nós podemos usar o método lastIndexOf() da classe String. Veja um exemplo completo de seu uso: package estudos; public class Estudos { public static void main(String[] args) { // Este exemplo mostra como pesquisar a última ocorrência // de uma substring em uma string String frase = "As pessoas costumam entender tudo sobre pessoas"; // verifica se a frase contém a palavra "pessoas" e // retorna a posição de sua última ocorrência int res = frase.lastIndexOf("pessoas"); if(res > 0){ System.out.println("A ultima ocorrencia foi encontrada na posicao: " + res); } else{ System.out.println("A substring nao foi encontrada"); } } } Ao executar este código Java nós teremos o seguinte resultado: A ultima ocorrencia foi encontrada na posicao: 40 |
JavaScript ::: DOM (Document Object Model) ::: Navegação e Pesquisa de Nós (Nodes) |
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScriptQuantidade de visualizações: 8392 vezes |
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript A propriedade nodeType, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1, pode ser usada quando precisamos obter o tipo de um determinado nó (node) na hierarquia de elementos HTML no DOM (Document Object Model). Esta propriedade retorna um valor inteiro indicando o tipo de nó sendo testado. Os valores mais comuns são 1 (nó elemento) e 3 (nó texto). Veja uma página HTML na qual temos um parágrafo e um elemento span. Na primeira vez nós vamos obter uma referência ao parágrafo e testar o tipo do nó. Na segunda vez nós obtemos uma referência ao primeiro nó filho do elemento span, o que resultará em seu conteúdo sendo testado. Veja: <html> <head> <title>Estudos JavaScript</title> <script type="text/javascript"> function obterNodeType(){ // vamos obter uma referência ao parágrafo com o id "paragrafo" var elem = document.getElementById("paragrafo"); // vamos obter o tipo de nó deste elemento var tipo = elem.nodeType; // vamos mostrar o resultado window.alert("O tipo deste elemento é: " + tipo); // vamos obter uma referência ao span com o id "frase" elem = document.getElementById("frase"); // vamos obter o tipo de nó do primeiro filho deste elemento tipo = elem.firstChild.nodeType; // vamos mostrar o resultado window.alert("O tipo deste elemento é: " + tipo); } </script> </head> <body> <p id="paragrafo">Sou um parágrafo</p> <span id="frase">Veja esta frase</span> <br><button onclick="obterNodeType()">Obter tipo do nó (nodeType)</button> </body> </html> Note que esta propriedade é somente-leitura, ou seja, não podemos modificar seu valor em tempo de execução. A propriedade nodeType pode ser obtida a partir dos seguintes elementos: a, abbr, acronym, address, applet, area, b, base, basefont, bdo, bgsound, big, blink, blockquote, body, br, button, caption, center, cite, code, col, colgroup, comment, dd, del, dfn, dir, div, dl, dt, em, embed, fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6, head, hr, html, i, iframe, img, input:button, input:checkbox, input:file, input:hidden, input:image, input:password, input:radio, input:range, input:reset, input:search, input:submit, input:text, ins, isindex, kbd, keygen, label, legend, li, link, listing, map, marquee, menu, meta, nobr, noframes, noscript, object, ol, optgroup, option, p, param, plaintext, pre, q, rt, ruby, s, samp, script, select, small, span, strike, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, u, ul, var, wbr, xml e xmp. Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6. |
C++ ::: Dicas & Truques ::: Input e Output (Entrada e Saída) |
Como exibir a saída em um programa C++ usando o objeto coutQuantidade de visualizações: 819 vezes |
O objeto cout, presente no arquivo de cabeçalho iostream, é usado quando precisamos exibir a saída em nossos programas C++. Por ser um objeto da classe ostream, o objeto cout nos oferece muitos métodos, funções e propriedades que permitem um melhor controle sobre a formatação de saída. Como o objeto cout é associada com o fluxo padrão de saída em um programação C++, as informações a serem exibidas na tela são fornecidas a ele por meio do operador de inserção (<<). Veja um trecho de código no qual usamos o objeto cout para exibir o valor da constante matemática PI: #include <string> #include <iostream> #include <math.h> using namespace std; int main(int argc, char *argv[]){ // vamos obter o valor da constante PI double pi = M_PI; // vamos usar o objeto cout para exibir o resultado cout << "O valor de PI é: " << pi << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executarmos este código C++ nós teremos o seguinte resultado: O valor de PI é: 3.14159 Vamos ver mais um exemplo? Eis um código C++ que usa o objeto cin para ler dois valor informados pelo usuário e depois usa o objeto cout para exibir a soma dos dois valores: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ int a, b, soma; // vamos ler dois valores cout << "Informe o primeiro valor: "; cin >> a; cout << "Informe o segundo valor: "; cin >> b; // vamos somar os dois valores soma = a + b; // e agora mostramos o resultado cout << "A soma dos valores é: " << soma << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Informe o primeiro valor: 8 Informe o segundo valor: 5 A soma dos valores é: 13 |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as palavras de uma frase ou texto em C# usando as funções IndexOf(), Replace() e Split() da classe StringQuantidade de visualizações: 12289 vezes |
Este exemplo mostra como retornar a quantidade de palavras em uma frase ou texto usando métodos da classe String do C#. Veja como usar os métodos IndexOf() e Replace() para remover os espaços em excesso e, em seguida, o método Split() para quebrar as partes da frase ou texto usando um único espaço como separador. Veja o código completo: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto muito de C# e Java"; int cont = 0; // remove os espaços em excesso while (frase.IndexOf(" ") >= 0) { frase = frase.Replace(" ", " "); } // remove espaços antes e depois da string frase = frase.Trim(); // conta as palavras cont = frase.Split(" ").Length; Console.WriteLine("A frase contém " + cont + " palavras"); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A frase contém 6 palavras |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid do Delphi e tratar seu evento OnEditButtonClickQuantidade de visualizações: 12213 vezes |
Em algumas situações gostaríamos de exibir um botão do tipo ellipsis (...) nas células de uma determinada coluna do TDBGrid. Este botão é exibido à direita da célula de edição do DBGrid e seu evento OnEditButtonClick pode ser disparado por meio da combinação Ctrl+Enter ou um click do mouse. Um dos usos mais frequentes do botão ellipsis é quando queremos chamar um formulário de pesquisa ou mais detalhes sobre o conteúdo atual da célula que está sendo editada. Siga os passos abaixo para adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid: a) Selecione a coluna desejada na lista Columns; b) Defina o valor cbsEllipsis para sua propriedade ButtonStyle; c) Escreva um gerenciador de eventos para o evento OnEditButtonClick do DBGrid. Veja no trecho de código a seguir como clicar no botão e exibir o conteúdo da célula (note que coloquei o botão ellipsis em uma coluna cujos células exibiam o valor do campo id de uma tabela livros): procedure TForm3.DBGrid1EditButtonClick(Sender: TObject); begin ShowMessage('O valor da célula que contém o botão é: ' + DBGrid1.SelectedField.AsString); end; Ao executar este código bastará entrar na célula e colocá-la em modo de edição. Automaticamente o botão ellipsis (...) será exibido. Clique no mesmo e verá uma mensagem parecida com: "O valor da célula que contém o botão é: 5." Caso queira que o botão ellipsis seja visível nas células o tempo todo, basta alterar o valor da opção dgAlwaysShowEditor para True. Esta opção é parte da propriedade Options do DBGrid. Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Fundamentos da Linguagem ::: Comentários |
Java para iniciantes - Como inserir comentários em seus códigos JavaQuantidade de visualizações: 13449 vezes |
Comentários em Java, assim como em outras linguagens, são ignorados pelo compilador. Em Java, podemos usar dois estilos de comentários: 1) Comentário de uma única linha: // obtém o resultado do cálculo int res = 4 + 5; // aqui também pode 2) Comentários de múltiplas linhas: /* Este exemplo mostra como verificar se um número é par ou ímpar. */ |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Apostila C para iniciantes - Como usar ponteiros na linguagem CQuantidade de visualizações: 32471 vezes |
Antes de pensarmos em ponteiros, é importante nos lembrarmos de alguns aspectos referentes à variáveis. Dependendo do seu conhecimento de programação, você deve saber que variáveis possuem nomes que as identificam durante a execução do programa. Você deve saber também que uma variável armazena um valor (que pode ser fixo, no caso de uma constante, ou pode mudar durante a execução de seus códigos). O que poucos programadores se lembram é que uma variável possui um endereço, e que o nome da variável não é nada mais que um apelido para a localização deste endereço. Desta forma, um ponteiro não é nada mais que um tipo especial de variável que armazena o endereço de outra. Veja um exemplo: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variável do tipo int int valor = 10; // ponteiro para uma variável do tipo int int *p = &valor; // exibe o valor da variável "valor", apontada // pelo ponteiro p printf("%d", *p); printf("\n\n"); system("PAUSE"); return 0; } Neste código nós temos a declaração e definição de duas variáveis: int valor = 10; int *p = &valor; A primeira variável é uma variável do tipo int e a segunda é um ponteiro para uma variável do tipo int. Veja que devemos sempre usar "*" antes do nome de um ponteiro em sua declaração. O símbolo "&" serve para indicar que estamos acessando o endereço de uma variável e não o seu conteúdo. O resultado destas duas linhas é que agora temos um ponteiro que nos permite acessar e manipular a variável valor. Observe a linha: printf("%d", *p); Aqui nós estamos acessando o valor da variável apontada por p. Veja o uso do símbolo "*" para acessar o valor da variável. Isso é chamado de desreferenciamento de ponteiros. Pareceu complicado? Veja uma linha de código que altera indiretamente o valor da variável valor para 30: *p = 30; Ponteiros são ferramentas muito importantes na programação em C. No entanto, é preciso ter muito cuidado ao lidar com eles. A primeira coisa a ter em mente é que um ponteiro não está apontando para nenhum lugar até que atribuimos a ele o endereço de uma outra variável. E é aí que mora o perigo. Um programa entra em colapso absoluto se tentarmos acessar um ponteiro que aponta para um local de memória que já foi liberado novamente ao sistema. No caso menos grave, estaremos tentando acessar locais de memória inválidos ou reservados a outros programas ou tarefas do sistema operacional. Isso me lembra os velhos tempos da tela azul de morte. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizada JavaScript - Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript JavaScript - Como converter uma string em um valor de ponto-flutuante em JavaScript usando a função parseFloat() Java - Como retornar a representação numérica de um caractere em Java fazendo um cast de char para int |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como adicionar zeros (ou outro caractere) no início de uma string usando o método padStart() da linguagem JavaScript GNU Octave - Como calcular a derivada de uma função usando a função diff() do GNU Octave - Regra do Tombo (ou Regra da Potência) |
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 |