Você está aqui: Cards de Python |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Mouse e Teclado |
Apostila de Java Swing - Como detectar um duplo-clique do mouse em uma JFrame ou outros controles visuaisQuantidade de visualizações: 11675 vezes |
|
Nesta dica mostrarei como podemos usar o método getClickCount() da classe MouseEvent para detectar o duplo-clique do mouse em uma janela JFrame do Java Swing. É claro que o código pode ser aplicado em qualquer outro componente que herde de JComponent. Veja o código completo para o exemplo:
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame{
public Estudos() {
super("Eventos do Mouse e Teclado");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
this.addMouseListener(
new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
if(e.getClickCount() == 2){
setTitle("Duplo-clique detectado.");
}
else{
setTitle("Clique simples detectado.");
}
}
}
);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Revit C# ::: Dicas & Truques ::: Tratamento de Erros |
Como corrigir o erro OperationCanceledException em macros e add-ins do Revit C# APIQuantidade de visualizações: 574 vezes |
|
Nesta dica mostrarei como podemos tratar a exceção OperationCanceledException em macros e plug-ins feitos para o Revit usando a Revit C# API. Esta exceção está no namespace Autodesk.Revit.Exceptions e deve ser declarada por seu nome completo, para não ser confundida com System.OperationCanceledException. O erro OperationCanceledException ocorre quando uma operação é cancelada de forma inesperada. Por exemplo, no código abaixo nós pedimos para o usuário selecionar um grupo e, em seguida, informar um ponto na área de desenho do Revit para que o grupo seja copiado e colocado no ponto indicado. Se o usuário clicar com o botão direito ou pressionar Esc, a operação é cancelada automaticamente. O tratamento da exceção OperationCanceledException nos permite reagir a isso, indicando ao usuário o melhor caminho a ser seguido. O código apresentado aqui já foi visto em dicas e truques sobre a criação e manipulação de grupos de elementos no Revit usando a Revit C# API. No entanto, no código apresentado eu não fiz o tratamento de exceções. 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 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;
// Vamos definir um objeto Reference para guardar
// o elemento selecionado pelo usuário
Reference ref_selecionado = null;
// pedimos para o usuário selecionar um grupo
Selection selecao = this.ActiveUIDocument.Selection;
try {
ref_selecionado = selecao.PickObject(ObjectType.Element,
"Selecione um grupo");
Element elem = doc.GetElement(ref_selecionado);
Group group = elem as Group;
// vamos pedir para o usuário selecionar um ponto na área de
// desenho do Revit
XYZ ponto = selecao.PickPoint(
"Selecione um ponto para posicionar o grupo");
// criamos uma nova transação e posicionamos a cópia do
// grupo nas coordenadas indicadas pelo usuário
Transaction transacao = new Transaction(doc);
transacao.Start("Copiar Grupo no Revit");
doc.Create.PlaceGroup(ponto, group.GroupType);
transacao.Commit();
// mostramos o resultado
TaskDialog.Show("Aviso", "O grupo foi copiado com sucesso.");
}
// Se o usuário clicar com o botão direito ou pressionar Esc
catch (Autodesk.Revit.Exceptions.OperationCanceledException ex) {
TaskDialog.Show("Aviso", "Erro: Operação cancelada pelo usuário");
}
catch (Exception ex) {
TaskDialog.Show("Aviso", "Erro: " + ex.Message);
}
}
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
}
}
Se o usuário cancelar a operação, ou seja, não selecionar nenhum grupo (talvez pressionando a tecla Esc), o código reagirá e mostrará a mensagem: Erro: The user aborted the pick operation. Se, em vez de selecionar um grupo, o usuário selecionar um outro elemento, então a mensagem de erro será: Erro: Referência de objeto não definida para uma instância de um objeto. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Declarar e construir um vetor, pedir ao usuário para informar os valores dos elementos e mostrar o maior e o menor valor armazenado no vetorQuantidade de visualizações: 10772 vezes |
|
Pergunta/Tarefa: Escreva um programa Java GUI ou console que declara e constrói um vetor de 10 inteiros. Em seguida peça ao usuário para informar os valores para os elementos do vetor e, uma vez preenchida, percorra o vetor e mostre os valores armazenados. Para finalizar varra o vetor novamente e mostre os valores do maior e do menor elemento. Sua saída deverá ser parecida com: Informe o 1º valor: 8 Informe o 2º valor: 3 Informe o 3º valor: 4 Informe o 4º valor: 1 Informe o 5º valor: 6 Informe o 6º valor: 5 Informe o 7º valor: 7 Informe o 8º valor: 2 Informe o 9º valor: 3 Informe o 10º valor: 8 Os valores informados foram: 8 3 4 1 6 5 7 2 3 8 O maior valor é: 8 O menor valor é: 1 Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// declara e constrói um vetor de 10 inteiros
int valores[] = new int[10];
// vamos pedir ao usuário para informar os 10 valores
for(int i = 0; i < valores.length; i++){
System.out.print("Informe o " + (i + 1) + "º valor: ");
valores[i] = Integer.parseInt(entrada.nextLine());
}
// vamos exibir os valores informados
System.out.println("\nOs valores informados foram: ");
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + " ");
}
// agora vamos encontrar o maior e o menor valor no vetor
// vamos assumir que o primeiro elemento
// possui o maior e o menor valor
int maior = valores[0], menor = valores[0];
for(int i = 0; i < valores.length; i++){
// encontra o maior valor
if(valores[i] > maior){
maior = valores[i];
}
// encontra o menor valor
if(valores[i] < menor){
menor = valores[i];
}
}
System.out.println("\n\nO maior valor é: " + maior);
System.out.println("O menor valor é: " + menor);
}
}
Uma idéia na resolução deste exercício é assumir que o primeiro elemento do vetor possui tanto o maior quanto o menor valor. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arquivos e Diretórios |
Exercícios Resolvidos de Java - Listando arquivos e diretórios em um diretório informado pelo usuárioQuantidade de visualizações: 2988 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que usa o método: public String[] list() Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.io.File;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos solicitar que o usuário informe o diretório a ser listado
System.out.print("Informe o diretório a ser listado: ");
String diretorioString = entrada.nextLine();
// vamos verificar se o usuário informou um diretorio válido no sistema
File diretorio = new File(diretorioString);
if(!diretorio.isDirectory()){
System.out.println("O caminho informado não é um diretório válido.");
}
else{ // é um diretório válido...vamos listar os arquivos
String lista[] = diretorio.list();
System.out.println("\nRelação de Arquivos e Diretórios:\n");
for(String item : lista){
System.out.println(item);
}
}
System.out.println("\n");
}
}
|
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar a quantidade de dimensões de uma matriz em C# usando a propriedade RankQuantidade de visualizações: 8643 vezes |
|
A propriedade Rank de um array do C# pode ser usada para obtermos a quantidade de dimensões de uma matriz (unidimensional, bidimensional, tridimensional, etc). Esta propriedade retorna um inteiro contendo a quantidade de dimensões. Veja o código para o exemplo:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
// cria uma matriz de duas dimensões: quatro linhas
// e duas colunas
int[,] matriz = new int[4, 2];
// obtém a quantidade de dimensões
int dimen = matriz.Rank;
Console.WriteLine("Este array possui " + dimen + " dimensões.");
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: Este array possui 2 dimensões. |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





