Você está aqui: Java ::: Classes e Componentes ::: JTextArea |
|
Definir barras de rolagem para um JTextAreaQuantidade de visualizações: 10202 vezes |
|
// Este exemplo mostra como adicionar barras de rolagem // a um JTextArea import javax.swing.*; import java.awt.*; public class Estudos extends JFrame{ JTextArea textArea; public Estudos() { super("Como adicionar barras de rolagem a um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); JScrollPane scrollPane = new JScrollPane(textArea); c.add(scrollPane); setSize(350, 250); 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: | |
Python ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar um diretório em Python usando a função mkdir() do módulo osQuantidade de visualizações: 2801 vezes |
Podemos usar a função mkdir() do módulo os da linguagem Python para criarmos diretórios. Em sua versão mais simples, este método pede somente o nome e caminho do diretório a ser criado. Se o caminho for omitido, o novo diretório será criado no diretório atual, ou seja, o diretório da aplicação Python. Veja um exemplo no qual criamos um diretório chamado "app" no diretório "C:\estudos_python": # importa o módulo os import os # método principal def main(): # nome do diretório diretorio = "C:\\estudos_python\\app" # vamos criar o diretório os.mkdir(diretorio) # mostramos o resultado print('O diretório foi criado com sucesso.') if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: c:\estudos_python>python estudos.py O diretório foi criado com sucesso. Note que um erro do tipo FileExistsError será exibido se o diretório já existir: Traceback (most recent call last): File "c:\estudos_python\estudos.py", line 16, in <module> main() File "c:\estudos_python\estudos.py", line 10, in main os.mkdir(diretorio) FileExistsError: [WinError 183] Não é possível criar um arquivo já existente: 'C:\\estudos_python\\app' Uma forma de evitar este erro é verificar se o diretório já existe ou usar uma construção try...except. Veja: # importa o módulo os import os # método principal def main(): # nome do diretório diretorio = "C:\\estudos_python\\app" try: # vamos criar o diretório os.mkdir(diretorio) # mostramos o resultado print('O diretório foi criado com sucesso.') except os.error as error_msg: print("Houve um erro: %s" % str(error_msg)) if __name__== "__main__": main() Execute o código novamente e veja como o tratamento de erro ficou mais elegante. |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C# para iniciantes - Como usar o laço for da linguagem C#Quantidade de visualizações: 11708 vezes |
O laço for em C# é usado quando queremos executar uma instrução ou um bloco de instruções um determinado número de vezes. Este laço é composto de três partes: Inicialização: Laços for são controlados por uma variável de controle. Nesta parte nós definimos o tipo de dados e o valor inicial desta variável. Esta parte do laço é executada somente na primeira iteração. Teste da condição de parada: Cada iteração do laço acontece mediante uma condição. Esta condição é avaliada e, caso o retorno seja satisfatório, a execução do laço continua. O resultado da avaliação desta parte do laço deve ser true ou false. Tenha em mente que, se a condição já for falsa na primeira iteração, o laço nunca será executado. Incremento ou decremento da variável de controle: Esta parte do laço é executada após cada iteração. É aqui que incrementamos ou decrementamos o valor da variável de controle. Esta parte é importante. Não manipular o valor da variável de controle pode resultar em laços infinitos. Veja um laço for no qual contamos de 0 a 10: static void Main(string[] args){ for(int i = 0; i <= 10; i++){ Console.WriteLine("{0}", i); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Veja agora um laço for que exibe os números pares de 0 a 10: static void Main(string[] args){ for(int i = 0; i <= 10; i += 2){ Console.WriteLine("{0}", i); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } E finalmente, um laço for que conta de 10 até 0: static void Main(string[] args){ for(int i = 10; i >= 0; i--){ Console.WriteLine("{0}", i); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Com exceção da parte do teste de condição de parada, as demais partes de um laço for podem conter múltiplas instruções separadas por vírgulas. Veja: static void Main(string[] args){ for(int i = 0, x = 3; i < 10; i++, x *= 4){ Console.WriteLine("{0}", i + x); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } |
Revit C# ::: Dicas & Truques ::: Colunas e Pilares |
Como rotacionar colunas e pilares no Revit via programação usando a função RotateElement() da classe ElementTransformUtils da Revit C# APIQuantidade de visualizações: 99 vezes |
Nesta dica mostrarei como podemos usar a função RotateElement() da classe ElementTransformUtils da Revit C# API para rotacionar uma coluna ou pilar no Revit, tudo isso via programação. Essa dica é muito útil para programadores Revit C#, pois traz as técnicas necessárias para selecionar um único elemento na área de desenho do Revit, assim como obter sua caixa delimitadora (BoundingBox), seu ponto geométrico central e, o mais importante, fazer a rotação do elemento em seus eixos. O primeiro passo é pedir para o usuário selecionar o pilar ou a coluna usando a função PickObject() da classe Selection, que retorna uma Reference. Após a seleção do elemento nós usamos a função GetElement() da classe Document para retornar o elemento como uma variável FamilyInstance, ou seja, uma instância de família do Revit. De posse da instância de família nós usamos a função get_BoundingBox() para obter e retornar um objeto da classe BoundingBoxXYZ. É esse objeto que usamos para obter o ponto máximo, o ponto mínimo e o ponto geométrico central da coluna ou pilar. O passo final é usar a função RotateElement() da classe ElementTransformUtils para rotacionar a coluna ou pilar de acordo com o ângulo de rotação desejado. Note que fiz a conversão de ângulos em graus para ângulos em radianos antes de efetuar a rotação. Veja o código Revit C# API completo para o exemplo: using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Revit.DB.Structure; using Autodesk.Revit.UI.Selection; using System.Collections.Generic; using Autodesk.Revit.DB.Architecture; using System.Linq; 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) { // vamos obter uma referência ao Document ativo Document doc = this.ActiveUIDocument.Document; UIDocument uidoc = this.ActiveUIDocument; // agora mostramos uma mensagem para o usuário selecionar uma // coluna ou pilar TaskDialog.Show("Aviso", "Selecione uma coluna ou pilar"); // obtemos uma referência ao objeto Selection do // UIDocument ativo Selection selecao = uidoc.Selection; // e finalmente esperamos que o usuário selecione o elemento Reference selecionado = selecao.PickObject(ObjectType.Element, "Selecione uma coluna ou pilar"); // agora testamos se o usuário realmente selecionou um // elemento if (selecionado != null) { // vamos obter o elemento selecionado a partir da // referência FamilyInstance coluna = uidoc.Document.GetElement(selecionado) as FamilyInstance; // vamos obter o elemento BoundingBoxXYZ BoundingBoxXYZ bounding = coluna.get_BoundingBox(null); // vamos obter as informações da BoundingBoxXYZ // primeiro o ponto mínimo (canto esquerdo inferior e // a parte de trás da caixa delimitadora) XYZ pontoMinimo = bounding.Min; // agora o ponto máximo (canto direito superior e // a parte da frente da caixa delimitadora) XYZ pontoMaximo = bounding.Max; // agora obtemos o ponto central da coluna XYZ centro = (pontoMaximo + pontoMinimo) * 0.5; // construímos a linha que servirá de eixo de rotação Line eixos = Line.CreateBound(centro, centro + XYZ.BasisZ); // definimos o ângulo de rotação em graus double angulo_rotacao_graus = 45; // convertemos para radianos double angulo_rotacao_radianos = angulo_rotacao_graus * (Math.PI / 180); // iniciamos a transação Transaction transacao = new Transaction(doc); transacao.Start("Como rotacionar colunas e pilares no Revit"); // rotacionamos a coluna ou pilar ElementTransformUtils.RotateElement(doc, coluna.Id, eixos, angulo_rotacao_radianos); // fazemos o commit da transação transacao.Commit(); // e mostramos o resultado TaskDialog.Show("Aviso", "A coluna foi rotacionada com sucesso."); } } 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 } } |
C# ::: Datas e Horas ::: DateTime |
Como usar o método IsLeapYear() da estrutura DateTime do C# para verificar se um determinado ano é bissextoQuantidade de visualizações: 7144 vezes |
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:static void Main(string[] args){ // vamos verificar se o ano 2008 // é bissexto int ano = 2008; if(DateTime.IsLeapYear(ano)) Console.WriteLine("O ano informado é bissexto"); else Console.WriteLine("O ano informado NÃO é bissexto"); // pausa o programa Console.ReadKey(); } Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999. |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C# - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 111 vezes |
Pergunta/Tarefa: Considere os seguintes vetores: // dois vetores de 5 inteiros cada int[] a = { 50, -2, 9, 5, 17 }; int[] b = new int[5]; Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 Veja a resolução comentada deste exercício usando C#: using System; namespace Estudos { class Principal { // função principal do programa C# static void Main(string[] args) { // dois vetores de 5 inteiros cada int[] a = { 50, -2, 9, 5, 17 }; int[] b = new int[5]; // vamos preencher o segundo vetor de forma que a soma dos // valores de seus elementos seja 30 for (int i = 0; i < b.Length; i++) { b[i] = 30 - a[i]; } // vamos mostrar o resultado Console.Write("Valores no vetor a: "); for (int i = 0; i < a.Length; i++) { Console.Write(a[i] + " "); } Console.Write("\nValores no vetor b: "); for (int i = 0; i < b.Length; i++) { Console.Write(b[i] + " "); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
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 |