![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular vetor unitário em Python - Python para Física e EngenhariaQuantidade de visualizações: 899 vezes |
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$. O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$. O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor. Então, vejamos a fórmula para a obtenção do vetor unitário: \[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\] Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível. Veja agora o código Python que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário: # vamos precisar do módulo Math import math # função principal do programa def main(): # vamos ler os valores x e y x = float(input("Informe o valor de x: ")) y = float(input("Informe o valor de y: ")) # o primeiro passo é calcular a norma do vetor norma = math.sqrt(math.pow(x, 2) + math.pow(y, 2)) # agora obtemos as componentes x e y do vetor unitário u_x = x / norma u_y = y / norma # mostra o resultado print("O vetor unitário é: (x = {0}; y = {1})".format(u_x, u_y)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe o valor de x: -4 Informe o valor de y: 6 O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437) Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço: # vamos precisar do módulo Math import math # função principal do programa def main(): # vamos ler os valores x, y e z x = float(input("Informe o valor de x: ")) y = float(input("Informe o valor de y: ")) z = float(input("Informe o valor de z: ")) # o primeiro passo é calcular a norma do vetor norma = math.sqrt(math.pow(x, 2) + math.pow(y, 2) + math.pow(z, 2)) # agora obtemos as componentes x, y e z do vetor unitário u_x = x / norma u_y = y / norma u_z = z / norma # mostra o resultado print("O vetor unitário é: (x = {0}; y = {1}; z = {2})".format( u_x, u_y, u_z)) if __name__== "__main__": main() Ao executarmos este novo código nós teremos o seguinte resultado: Informe o valor de x: 3 Informe o valor de y: 7 Informe o valor de z: 5 O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517) |
Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout |
Como adicionar espaço entre o GridBagLayout do Java Swing e as bordas da janela JFrame usando o método setBorder()Quantidade de visualizações: 11423 vezes |
Se o GridBagLayout for o gerenciador de layout principal da janela, pode ser interessante adicionar algum espaço (padding) entre ele e as bordas da janela JFrame ou JDialog. Isso pode ser feito obtendo-se uma referência ao painel de conteúdo (ContentPane) da JFrame e adicionando uma borda EmptyBorder. Veja como isso é feito no trecho de código abaixo:package arquivodecodigos; import javax.swing.*; import javax.swing.border.*; import java.awt.*; public class Estudos extends JFrame{ public Estudos(){ super("Como usar a classe GridBagLayout"); // define o layout setLayout(new GridBagLayout()); // define uma borda para aumentar o espaço // entre as bordas da janela e o gerenciador // de layout ((JComponent)getContentPane()).setBorder( new EmptyBorder(10, 10, 10, 10)); // cria o GridBagConstraints GridBagConstraints gbc = new GridBagConstraints(); // controla o espaço entre os componentes // e as linhas do GridBagLayout. // aqui nós definimos 5 pixels para os // lados de cima, esquerda, inferior e direita gbc.insets = new Insets(5, 5, 5, 5); // adiciona componentes à janela gbc.gridy = 0; // linha gbc.gridx = 0; // coluna add(new JButton("Botão 1"), gbc); gbc.gridy = 0; // linha gbc.gridx = 1; // coluna add(new JButton("Botão 2"), gbc); gbc.gridy = 0; // linha gbc.gridx = 2; // coluna add(new JButton("Botão 3"), gbc); gbc.gridy = 1; // linha gbc.gridx = 0; // coluna add(new JButton("Botão 4"), gbc); gbc.gridy = 1; // linha gbc.gridx = 1; // coluna add(new JButton("Botão 5"), gbc); gbc.gridy = 1; // linha gbc.gridx = 2; // coluna add(new JButton("Botão 6"), gbc); //setSize(350, 150); pack(); // ajusta o tamanho da janela ao // dos componentes setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este código Java Swing nós teremos o seguinte resultado: ![]() |
Java ::: Coleções (Collections) ::: LinkedList |
Como usar a classe LinkedList do Java em suas aplicaçõesQuantidade de visualizações: 27152 vezes |
A classe LinkedList é uma implementação da interface List. Esta classe implementa boa parte das operações de uma lista e permite a inserção de qualquer tipo de elemento (incluindo null). Veja sua posição na hierarquia de classes Java: java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.AbstractSequentialList<E> java.util.LinkedList<E> Esta classe implementa as seguintes interfaces: Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E> e Queue<E>. O uso mais comum de uma lista ligada é quando precisamos adicionar e remover elementos no início ou final da lista, acessar os elementos no início ou final e percorrer a lista elemento por elemento. Não é raro ver programadores usando a classe LinkedList como uma pilha ou fila. O trecho de código abaixo mostra como criar uma LinkedList, adicionar elementos e percorrê-los usando um ListIterator: import java.util.*; public class Estudos{ public static void main(String args[]){ // Cria uma LinkedList de String LinkedList<String> lista = new LinkedList<String>(); // adiciona três elementos na lista lista.add("Cuiabá"); lista.add("Goiânia"); lista.add("Belo Horizonte"); // obtém um ListIterator para percorrer toda a // lista, começando no primeiro elemento ListIterator<String> iterador = lista.listIterator(0); while(iterador.hasNext()){ String cidade = iterador.next(); System.out.println(cidade); } } } Ao executar este código Java nós teremos o seguinte resultado: Cuiabá Goiânia Belo Horizonte |
C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Como definir o tipo de instrumento (programa) em um evento MIDI e enviar a mensagem para a função midiOutShortMsg() da API Win32 do WindowsQuantidade de visualizações: 1117 vezes |
Vimos em dicas nessa seção como usar a função midiOutShortMsg() da API Win32 do Windows para tocar notas musicais no dispositivo de saída MIDI. No entanto, nos exemplos anteriores, a nota tocada foi no instrumento padrão, ou seja, Acoustic Grand Piano, e no canal 1. Nesta dica mostrarei como definir o instrumento e também falarei um pouco mais sobre como tocar as notas em canais diferentes. Vamos então, com muita atenção. Analisando a documentação MIDI, encontramos que uma mudança de programa (instrumento musical) no canal 1 é representada pelo código de status 192 (hexadecimal C0), seguido pelo código do instrumento a ser usado (um valor inteiro que vai de 0 a 127, e que deverá ser convertido em hexadecimal). Assim, é bom dar uma olhada nessa lista: Piano Timbres: 1 Acoustic Grand Piano 2 Bright Acoustic Piano 3 Electric Grand Piano 4 Honky-tonk Piano 5 Rhodes Piano 6 Chorused Piano 7 Harpsichord 8 Clavinet Chromatic Percussion: 9 Celesta 10 Glockenspiel 11 Music Box 12 Vibraphone 13 Marimba 14 Xylophone 15 Tubular Bells 16 Dulcimer Organ Timbres: 17 Hammond Organ 18 Percussive Organ 19 Rock Organ 20 Church Organ 21 Reed Organ 22 Accordion 23 Harmonica 24 Tango Accordion Guitar Timbres: 25 Acoustic Nylon Guitar 26 Acoustic Steel Guitar 27 Electric Jazz Guitar 28 Electric Clean Guitar 29 Electric Muted Guitar 30 Overdriven Guitar 31 Distortion Guitar 32 Guitar Harmonics Bass Timbres: 33 Acoustic Bass 34 Fingered Electric Bass 35 Plucked Electric Bass 36 Fretless Bass 37 Slap Bass 1 38 Slap Bass 2 39 Synth Bass 1 40 Synth Bass 2 String Timbres: 41 Violin 42 Viola 43 Cello 44 Contrabass 45 Tremolo Strings 46 Pizzicato Strings 47 Orchestral Harp 48 Timpani Ensemble Timbres: 49 String Ensemble 1 50 String Ensemble 2 51 Synth Strings 1 52 Synth Strings 2 53 Choir "Aah" 54 Choir "Ooh" 55 Synth Voice 56 Orchestral Hit Brass Timbres: 57 Trumpet 58 Trombone 59 Tuba 60 Muted Trumpet 61 French Horn 62 Brass Section 63 Synth Brass 1 64 Synth Brass 2 Reed Timbres: 65 Soprano Sax 66 Alto Sax 67 Tenor Sax 68 Baritone Sax 69 Oboe 70 English Horn 71 Bassoon 72 Clarinet Pipe Timbres: 73 Piccolo 74 Flute 75 Recorder 76 Pan Flute 77 Bottle Blow 78 Shakuhachi 79 Whistle 80 Ocarina Synth Lead: 81 Square Wave Lead 82 Sawtooth Wave Lead 83 Calliope Lead 84 Chiff Lead 85 Charang Lead 86 Voice Lead 87 Fifths Lead 88 Bass Lead Synth Pad: 89 New Age Pad 90 Warm Pad 91 Polysynth Pad 92 Choir Pad 93 Bowed Pad 94 Metallic Pad 95 Halo Pad 96 Sweep Pad Synth Effects: 97 Rain Effect 98 Soundtrack Effect 99 Crystal Effect 100 Atmosphere Effect 101 Brightness Effect 102 Goblins Effect 103 Echoes Effect 104 Sci-Fi Effect Ethnic Timbres: 105 Sitar 106 Banjo 107 Shamisen 108 Koto 109 Kalimba 110 Bagpipe 111 Fiddle 112 Shanai Sound Effects: 113 Tinkle Bell 114 Agogo 115 Steel Drums 116 Woodblock 117 Taiko Drum 118 Melodic Tom 119 Synth Drum 120 Reverse Cymbal Sound Effects: 121 Guitar Fret Noise 122 Breath Noise 123 Seashore 124 Bird Tweet 125 Telephone Ring 126 Helicopter 127 Applause 128 Gun Shot A especificação MIDI define que o canal 10 seja reservado para os kits de percussão. Os instrumentos abaixo possuem os números de notas a serem enviados neste canal. 35 Acoustic Bass Drum 36 Bass Drum 1 37 Side Stick 38 Acoustic Snare 39 Hand Clap 40 Electric Snare 41 Low Floor Tom 42 Closed High Hat 43 High Floor Tom 44 Pedal High Hat 45 Low Tom 46 Open High Hat 47 Low Mid Tom 48 High Mid Tom 49 Crash Cymbal 1 50 High Tom 51 Ride Cymbal 1 52 Chinese Cymbal 53 Ride Bell 54 Tambourine 55 Splash Cymbal 56 Cowbell 57 Crash Cymbal 2 58 Vibraslap 59 Ride Cymbal 2 60 High Bongo 61 Low Bongo 62 Mute High Conga 63 Open High Conga 64 Low Conga 65 High Timbale 66 Low Timbale 67 High Agogo 68 Low Agogo 69 Cabasa 70 Maracas 71 Short Whistle 72 Long Whistle 73 Short Guiro 74 Long Guiro 75 Claves 76 High Wood Block 77 Low Wood Block 78 Mute Cuica 79 Open Cuica 80 Mute Triangle 81 Open Triangle É uma lista bem longa e ficará a ser cargo estudá-la ou usá-la como referência. Meu interesse maior é o código C/C++. Assim, vamos ver logo como definir o instrumento no canal 1 como Overdriven Guitar. Este instrumento possui o código 30 mas, na programação, devemos diminuí-lo em 1, ficando 29, e, ao passarmos para hexadecimal teremos 1D. A mudança de programa no canal 1 é representada pelo código 192, o que em hexadecimal é C0. Pronto, agora basta construirmos o DWORD da forma que fizemos nas dicas anteriores e chamar a função midiOutShortMsg(). Veja: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]) { unsigned int erro; // guarda o erro caso algo dê errado HMIDIOUT saida; // handle para o dispositivo de saída MIDI. // vamos abrir o dispositivo de saída MIDI erro = midiOutOpen(&saida, MIDI_MAPPER, 0, 0, CALLBACK_NULL); if (erro != MMSYSERR_NOERROR) { printf("Não foi possível abrir o mapeador MIDI: %d\n", erro); } else { printf("Mapeador MIDI aberto com sucesso\n"); } // vamos definir o instrumento como Overdriven Guitar // no canal 1 midiOutShortMsg(saida, 0x00001DC0); // vamos tocar o dó central com velocidade 100 midiOutShortMsg(saida, 0x00643C90); Sleep(1000); // a nota vai durar 1 segundo // dispara a mensagem Note-off midiOutShortMsg(saida, 0x00643C80); // agora vamos fechar o dispositivo de saída MIDI midiOutClose(saida); system("PAUSE"); return EXIT_SUCCESS; } Execute esse código e ouça um nota dó sendo tocada na guitarra com uma linda distorção. Se você quiser tocar a nota nó no canal 2 ou canal 3, basta usar C1, C2, e assim por diante. Uma última observação é você ficar atento ao fato de que os códigos de Note-on e Note-off para o canal 1 é 90 e 80 (em hexadecimal). Se for no canal 2, os códigos correspondentes serão 91 e 81 (sempre em hexadecimal). |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como testar se um número é perfeito usando JavaQuantidade de visualizações: 846 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro e informa se este número é um número perfeito. Um número perfeito é aquele cuja soma dos seus divisores, exceto ele próprio, é igual ao número. Por exemplo, o número 6 é perfeito, pois 1 + 2 + 3 = 6. Sua saída deverá ser parecida com: Informe um número inteiro: 6 O número informado é um número perfeito. Veja a resolução completa para o exercício em Java, comentada linha a linha: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ int numero; // número informado pelo usuário int soma = 0; // vai guardar a soma dos dígitos // para efetuar a leitura da entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar o valor inteiro System.out.print("Informe um número inteiro: "); // lê o número informado numero = Integer.parseInt(entrada.nextLine()); // um laço que começa em 1 e até o número informado - 1 for(int i = 1; i < numero; i++){ // o número é divisível pelo valor de i? if(numero % i == 0){ soma = soma + i; // aumenta a soma } } // a soma é igual ao número informado? if(soma == numero){ System.out.println("O número informado é um número perfeito."); } else{ System.out.println("O número informado não é um número perfeito."); } } } |
Ruby ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter uma string em um valor inteiro válido em Ruby usando a função to_iQuantidade de visualizações: 8866 vezes |
Em algumas situações nós temos que efetuar cálculos matemáticos usando valores fornecidos como texto. Para isso nós precisamos converter esses valores que chegam como string em valores numéricos válidos. Em Ruby nós podemos converter uma string em um inteiro usando a função to_i. Veja um exemplo que mostra como ler a entrada do usuário em Ruby a partir do teclado e efetuar um cálculo matemático: # Veja o uso do método to_i para converter um string # em um valor inteiro válido print "Informe o primeiro número: " num1 = (gets.chomp).to_i print "Informe o segundo número: " num2 = (gets.chomp).to_i # Exibe o resultado puts "A soma dos valores é: #{num1 + num2}" Ao executar este código Ruby nós teremos o seguinte resultado: Informe o primeiro número: 8 Informe o segundo número: 2 A soma dos valores é: 10 |
PHP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter graus em radianos em PHP usando a função deg2rad() - Trigonometria para iniciantesQuantidade de visualizações: 14661 vezes |
As unidades grau e radiano são muito usadas em cálculos de trigonometria. O grau é de uso mais no cotidiano pela sua praticidade, pois envolve, na maioria dos casos, números inteiros. O radiano é de uso em cálculos envolvendo geralmente números racionais (e também na programação gráfica, uma vez que praticamente todas as linguagens de programação possuem funções de trigonometria que requerem e retornam valores em radianos, e não em graus). Graus podem ser convertidos para radianos usando-se a seguinte fórmula: ![]() Note que o valor de PI é 3,14 (aproximadamente). Veja agora um trecho de código PHP que converte um ângulo em graus para radianos: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $graus = 45; $radianos = ($graus / 180) * pi(); echo "Ângulo em graus: " . $graus . "<br>"; echo "Ângulo em radianos: " . $radianos; ?> </body> </html> Ao executarmos este código nós teremos o seguinte resultado: Ângulo em graus: 45 Ângulo em radianos: 0.78539816339745 O PHP, na contramão de várias outras linguagens de programação, nos fornece uma função já embutida que nos permite converter de graus para radianos. Esta função se chama deg2rad(), recebe um valor em graus e devolve o resultado em radianos. Veja como usá-la no código PHP abaixo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $graus = 45; $radianos = deg2rad($graus); echo "Ângulo em graus: " . $graus . "<br>"; echo "Ângulo em radianos: " . $radianos; ?> </body> </html> Ao executarmos o código novamente, teremos o seguinte resultado: Ângulo em graus: 45 Ângulo em radianos: 0.78539816339745 Veja que o resultado obtido com o uso da função deg2rad() foi o mesmo que obtivemos com o cálculo no início da dica. Para finalizar, saiba que 45o, assim como 30o e 60o são conhecidos como ângulos notáveis, e seus valores em radianos, assim como seus seno, cosseno e tangentes, devem ser memorizados se você quiser se tornar um guru (ou guroa) em geometria e trigonometria (e em computação gráfica, é claro). |
JavaScript ::: Fundamentos da Linguagem ::: Estruturas de Controle |
JavaScript para leigos - Como usar o laço while da linguagem JavaScriptQuantidade de visualizações: 7314 vezes |
O laço while (também chamado de loop ou laço enquanto) da linguagem JavaScript é usado quando queremos repetir uma instrução ou um grupo de instruções ENQUANTO uma condição for satisfeita. Veja sua sintáxe:while(condição){ // uma instrução ou grupo de instruções } A condição pode ser qualquer expressão que resulte em um valor boolean (true ou false). Note também que o teste condicional é feito antes de cada iteração (repetição) do laço. Isso faz com que este laço, dependendo da condição inicial, possa nunca ser executado. Veja um trecho de código no qual usamos o laço while para contar de 0 até 10: <html> <head> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> var i = 0; while(i <= 10){ document.write(i + "<br>"); i++; } </script> </body> </html> Ao executarmos este código teremos o seguinte resultado: 0 1 2 3 4 5 6 7 8 9 10 Veja que declaramos uma variável de controle i e a inicializamos com o valor 0. Na entrada do laço nós verificamos se seu valor é menor ou igual a 10. Como esta condição é satisfeita, o laço é executado pela primeira vez. No corpo do laço nós exibimos o valor da variável de controle e a incrementamos em 1. Agora o ciclo se repete. A condição é testada novamente. Se esta for satisfeita, o código entra no corpo do laço novamente e assim por diante. Veja agora como modificar o laço while anterior para exibir os números de 10 até 0: <html> <head> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> var i = 10; while(i >= 0){ document.write(i + "<br>"); i--; } </script> </body> </html> Agora o resultado do código será: 10 9 8 7 6 5 4 3 2 1 0 Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6. |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar o modificador abstract em suas classes e métodos Java - Programação Orientada a Objetos em Java - Java POOQuantidade de visualizações: 18365 vezes |
O modificador abstract pode ser aplicado a classes e métodos. Seu uso com variáveis pode causar o erro abaixo:abstract String nome; Estudos.java:2: modifier abstract not allowed here abstract String nome; ^ 1 error Classes abstratas não podem ser instanciadas, ou seja, não podemos chamar seu construtor. Veja um exemplo: public class Estudos{ public static void main(String args[]){ Cliente cliente = new Cliente(); System.exit(0); } } abstract class Cliente{ public Cliente(){ } } Ao tentarmos compilar esta classe teremos o seguinte erro: Estudos.java:3: Cliente is abstract; cannot be instantiated Cliente cliente = new Cliente(); ^ 1 error A função principal de classes abstratas é forçar a implementação para as sub-classes. Desta forma, seus métodos são declarados com o modificador abstract e sem corpo. Veja: abstract class Cliente{ abstract void obterNome(); } Sempre que suas classes contiverem um ou mais métodos abstratos, você deverá declará-la abstrata. Não seguir esta regra provocará o seguinte erro: class Cliente{ abstract void obterNome(); } Estudos.java:9: Cliente is not abstract and does not override abstract method obterNome() in Cliente class Cliente{ ^ 1 error As situações que fazem com que uma classe deva ser declarada abstract são:
Para finalizar, abstract é o oposto de final. Uma classe final não pode ter sub-classes. Uma classe abstract precisa ter sub-classes. |
Java ::: Classes e Componentes ::: JList |
Java Swing - Como obter o valor selecionado em um JList usando o método getSelectedValue()Quantidade de visualizações: 13289 vezes |
Nesta dica eu mostro como chamar o método getSelectedValue() de um controle JList para obter o valor do item selecionado na mesma. No exemplo nós exibimos o item selecionado em uma mensagem JOptionPane ao clicarmos em um botão JButton. Veja o código completo para o exemplo: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JList lista; public Estudos() { super("A classe JList"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria os itens da lista String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria a JList lista = new JList(nomes); // Define a seleção única para a lista lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Um botão que permite obter o valor do item selecionado JButton btn = new JButton("Obter valor selecionado"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String valor = (String)(lista.getSelectedValue()); JOptionPane.showMessageDialog(null, "O valor selecionado é: " + valor); } } ); // Adiciona a lista à janela c.add(new JScrollPane(lista)); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar esta aplicação Java Swing nós teremos o seguinte resultado: ![]() |
Nossas 20 dicas & truques de programação mais populares |
React.js - Aprenda a desenvolver aplicações React diretamente no HTML, sem usar a ferramenta create-react-app Java - Como retornar a hora atual em Java usando um objeto da classe Calendar - Datas e Horas em Java |
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 |