Você está aqui: Java ::: Classes e Componentes ::: JMenuBar, JMenu, JMenuItem e Afins |
Fechando a aplicação ao clicar em um item de menuQuantidade de visualizações: 11022 vezes |
/* Este exemplo mostra como fechar a aplicação ao clicar em um item de menu. */ import javax.swing.*; import java.awt.event.*; public class Estudos extends JFrame{ public Estudos(){ super("Menus"); // Cria a barra de menus JMenuBar barra = new JMenuBar(); setJMenuBar(barra); // Cria um menu JMenu arquivo = new JMenu("Arquivo"); // Cria um item de menu e o adiciona no menu JMenuItem fechar = new JMenuItem("Fechar"); // Fecha a aplicação ao clicar no item de menu fechar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(0); } } ); arquivo.add(fechar); // Adiciona o menu à barra de menus barra.add(arquivo); setSize(300, 150); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Link para compartilhar na Internet ou com seus amigos: |
Flutter ::: Material Library - Biblioteca Material ::: TextField |
Como usar a propriedade onChanged da classe TextField do Flutter para detectar mudança em seu conteúdo e exibí-lo como título da janelaQuantidade de visualizações: 1535 vezes |
A propriedade onChanged da classe TextField nos permite detectar quando o conteúdo da caixa de texto sofre alterações (quando o usuário digita mais conteúdo ou deleta o conteúdo já existente. Nesta dica eu mostro como tirar proveito dessa propriedade para atualizar o título da AppBar com o mesmo texto da caixa de texto à medida que o usuário digita. ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import 'package:flutter/material.dart'; // método principal do Dart, que inicia a aplicação void main() { runApp(MeuApp()); } class MeuApp extends StatelessWidget { // Este widget é a raiz da aplicação Flutter @override Widget build(BuildContext context) { return MaterialApp( title: 'Controle TextField', theme: ThemeData( primarySwatch: Colors.blue, ), home: TelaInicial(), ); } } // Vamos construir a view e retornar para a raiz da aplicação class TelaInicial extends StatefulWidget { TelaInicial({Key key}) : super(key: key); @override _TelaInicialState createState() => _TelaInicialState(); } class _TelaInicialState extends State<TelaInicial> { String tituloJanela = "Título da Janela"; @override Widget build(BuildContext context) { // vamos criar uma caixa de texto chamada nomeTxt final nomeTxt = TextField( decoration: InputDecoration( border: OutlineInputBorder( borderRadius: BorderRadius.circular(10.0)), hintText: 'Digite seu nome' ), // Vamos detectar a mudança de conteúdo do TextField onChanged: (String value) async { // setState() força a atualização da janela setState(() { tituloJanela = value; }); } ); return Scaffold( appBar: AppBar( title: Text(tituloJanela), ), body: Center( child: Container( child: Padding( padding: const EdgeInsets.all(20.0), child: Column( children: <Widget>[ // a caixa de texto TextField vai aqui nomeTxt, ], ), ), ), ), ); } } |
JavaScript ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em JavaScriptQuantidade de visualizações: 1260 vezes |
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem JavaScript. Comece observando a imagem a seguir: Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos que fazer é mudar a fórmula para: \[a^2 = c^2 - b^2\] Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem JavaScript: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> var c = 36.056; // medida da hipotenusa var b = 30; // medida do cateto adjascente // agora vamos calcular o comprimento da cateto oposto var a = Math.sqrt(Math.pow(c, 2) - Math.pow(b, 2)); // e mostramos o resultado document.writeln("A medida do cateto oposto é: " + a); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: A medida do cateto oposto é: 20.00087838071118 Como podemos ver, o resultado retornado com o código JavaScript confere com os valores da imagem apresentada. |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como pesquisar uma substring em uma string usando a função find() da linguagem PythonQuantidade de visualizações: 12119 vezes |
Nesta dica mostrarei como podemos usar o método find() do objeto string da linguagem Python para pesquisar uma substring em uma string. A assinatura dessa função é: find(substring[, start[, end]]) onde substring é a substring a ser pesquisada e start e end são argumentos opcionais que definem os índices de início e fim da pesquisa. Se a substring não for encontrada, o valor -1 é retornado. Se for encontrada, o índice do primeiro caractere é retornado. Veja um exemplo completo do seu uso: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- def main(): frase = "Gosto de Python e JavaScript" indice = frase.find("Python") if indice != -1: print("A palavra foi encontrada no índice", indice) else: print("A palavra não foi encontrada") if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: A palavra foi encontrada no índice 9. |
Revit C# ::: Dicas & Truques ::: Eixos - Grids |
Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# APIQuantidade de visualizações: 108 vezes |
Os eixos, ou grids, são linhas que auxiliam na construção de um projeto, ou seja, uma espécie de malha de linhas. Eles são mais utilizados quando se trabalha com elementos estruturais, para a locação de colunas e pilares. No Revit, os eixos podem ser verticais, horizontais, inclinados e até em forma de arcos. Para criá-los, vá na aba Arquitetura, seção Dados e localize o item Eixo (ou digite GR). Via programação nós podemos criar um eixo no Revit usando a função Create() da classe Grid da Revit C# API. Neste exemplo mostrarei, em detalhes, como isso pode ser feito. O primeiro passo é obter uma referência ao documento UI atual usando this.ActiveUIDocument. Após isso acessar o documento usando uidoc.Document. As coordenadas geométricas de início e fim do eixo são criadas como objetos da classe XYZ. Então, de posse das coordenadas, nós criamos um objeto Line usando a função Line.CreateBound(). Para finalizar nós usamos a função Grid.Create() para desenhar o eixo na área de desenho do Revit. Note como passamos o objeto Line e uma referência ao documento atual para esta função. Veja ainda o uso de uma Transaction para abrir uma transação do Revit, criar o elemento e fechá-la em seguida. Este exemplo criará um eixo com o LevelId -1, ou seja, no primeiro nível do documento. Em outras dicas dessa seção eu mostro como definir o nível para o grid recém-criado. Veja o código Revit C# API completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; using System.Collections.Generic; using System.IO; using System.Linq; using Autodesk.Revit.DB; using Autodesk.Revit.DB.Architecture; using Autodesk.Revit.DB.Structure; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; namespace Estudos { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes. TransactionMode.Manual)] [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")] public partial class ThisApplication { private void Module_Startup(object sender, EventArgs e) { // primeiro obtemos uma referência ao documento atual UIDocument uidoc = this.ActiveUIDocument; Document doc = uidoc.Document; // criamos a linha geométrica para posicionar o eixo // não se esqueça de converter metros para pés XYZ inicio = new XYZ(0, -100, 0); XYZ final = new XYZ(0, 100, 0); // construímos a linha Line linhaGeometrica = Line.CreateBound(inicio, final); // iniciamos uma nova transação using(Transaction t= new Transaction(doc)) { t.Start("Criar um novo Grid"); // e criamos o novo eixo Grid eixo = Grid.Create(doc, linhaGeometrica); t.Commit(); // e mostramos o resultado TaskDialog.Show("Aviso", "O novo eixo foi criado com o ID: " + eixo.Id); } } private void Module_Shutdown(object sender, EventArgs e) { // para fazer alguma limpeza de memória ou algo assim } #region Revit Macros generated code private void InternalStartup() { this.Startup += new System.EventHandler(Module_Startup); this.Shutdown += new System.EventHandler(Module_Shutdown); } #endregion } } Ao executar este código Revit C# API teremos o seguinte resultado: O novo eixo foi criado com o ID: 49827 |
Ruby ::: Fundamentos da Linguagem ::: Passos Iniciais |
Qual é a diferença entre print e puts em Ruby?Quantidade de visualizações: 11927 vezes |
Tanto a função print quanto a função puts do Ruby nos permite escrever na tela, ou seja, exibir ao usuário o resultado do processamento das operações requisitas. Então, qual a diferença entre elas? A instrução puts é uma abreviação de "put string" e automaticamente move o cursor para a próxima linha. A instrução print é usada quando queremos escrever e manter o cursor na mesma linha. Veja um exemplo completo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # Este exemplo mostra a diferença entre as funções # print e puts da linguagem Ruby # vamos construir uma frase aqui frase = "Gosto muito de Ruby" # vamos exibir a frase usando duas chamadas print e # depois duas chamadas puts print frase print frase puts frase puts frase Ao executar este código Ruby nós teremos o seguinte resultado: Gosto muito de RubyGosto muito de RubyGosto muito de Ruby Gosto muito de Ruby Note que as duas primeiras chamadas a print escreveram na mesma linha. Porém, a primeira chamada a puts escreveu na mesma linha anterior, mas já colocou uma quebra de linha após a escrita. As duas funções, contudo, permitem o uso do caractere de quebra de linha. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # Este exemplo mostra a diferença entre as funções # print e puts da linguagem Ruby # vamos construir uma frase aqui frase = "Gosto muito de Ruby" # vamos exibir a frase usando duas chamadas print e # depois duas chamadas puts print frase + "\n" print frase + "\n" puts frase + "\n\n" puts frase Ao executar este novo código nós teremos o seguinte resultado: Gosto muito de Ruby Gosto muito de Ruby Gosto muito de Ruby Gosto muito de Ruby |
Desafios, Exercícios e Algoritmos Resolvidos de Ruby |
Veja mais Dicas e truques de Ruby |
Dicas e truques de outras linguagens |
JavaScript - Como remover todos os espaços de uma string em JavaScript usando uma função personalizada remover_espacos() Java - Como calcular o coeficiente angular de uma reta em Java dados dois pontos no plano cartesiano |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |