Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string em um valor inteiro em Ruby usando a função to_i da classe StringQuantidade de visualizações: 11790 vezes |
|
Em algumas situações precisamos transformar um valor contido em uma string em um valor numérico do tipo inteiro. Em Ruby podemos fazer isso usando o método to_i da classe String. Veja: # um número inteiro declarado como string valor = "34" # vamos somar este número a um outro resultado = 30 + valor.to_i # exibe o resultado puts resultado Ao executar este código Ruby nós teremos o seguinte resultado: 64 |
Java ::: Aplicativos Completos ::: Fontes |
Como criar um visualizador de fontes em Java Swing - Código fonte completoQuantidade de visualizações: 10973 vezes |
|
Código completo Java: Como escrever um visualizador de fontes em Java Swing Nesta dica eu mostro o código completo para uma aplicação GUI usado Java Swing e que permite visualizar as fontes instaladas no sistema. Ao clicar em uma das fontes exibidas em uma JList, o texto da JLabel é formatado de acordo com a fonte escolhida. Note que montei toda a GUI em código mesmo, ou seja, sem usar o editor visual do Netbeans ou outra IDE. Esse é um bom exercício para entender os elementos que compõem interfaces gráficas do Java Swing. Eis o código completo para o exemplo:
package arquivodecodigos;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
public class Estudos extends JFrame
implements ListSelectionListener{
JLabel label = new JLabel("Observe este texto");
public Estudos(){
super("Visualizados de Fontes");
String[] fontNames; // nomes das fontes
Toolkit toolkit = Toolkit.getDefaultToolkit();
fontNames =
GraphicsEnvironment.getLocalGraphicsEnvironment().
getAvailableFontFamilyNames();
Vector fonts = new Vector();
for(int i = 0; i < fontNames.length; i++){
fonts.add(new Font(fontNames[i], Font.PLAIN, 16));
}
JList fontList = new JList(fonts);
fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
fontList.setCellRenderer(new FontCellRenderer());
JScrollPane scrollPane = new JScrollPane(fontList);
JPanel p = new JPanel();
p.add(scrollPane);
fontList.addListSelectionListener(this);
getContentPane().add(p, "Center");
getContentPane().add(label, "South");
setSize(500, 250);
setVisible(true);
}
@Override
public void valueChanged(ListSelectionEvent evt){
JList source = (JList) evt.getSource();
Font font = (Font) source.getSelectedValue();
label.setFont(font);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// Classe personalizada que implementa ListCellRenderer
class FontCellRenderer implements ListCellRenderer{
@Override
public Component getListCellRendererComponent(
final JList list, final Object value,
final int index, final boolean isSelected,
final boolean cellHasFocus){
return new JPanel(){
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
Font font = (Font) value;
String text = font.getFamily();
FontMetrics fm = g.getFontMetrics(font);
g.setColor(isSelected ? list.getSelectionBackground()
: list.getBackground());
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(isSelected ? list.getSelectionForeground()
: list.getForeground());
g.setFont(font);
g.drawString(text, 0, fm.getAscent());
}
@Override
public Dimension getPreferredSize() {
Font font = (Font) value;
String text = font.getFamily();
Graphics g = getGraphics();
FontMetrics fm = g.getFontMetrics(font);
return new Dimension(fm.stringWidth(text), fm.getHeight());
}
};
}
}
Ao executá-lo você terá um resultado parecido com: ![]() |
Revit C# ::: Dicas & Truques ::: Pontos e Coordenadas |
Como pedir para o usuário selecionar um ponto na área de desenho do Revit usando a função PickPoint() do objeto Selection da Revit C# APIQuantidade de visualizações: 526 vezes |
|
Em várias situações nós precisamos que o usuário indique um ponto na área de desenho do Revit, ou seja, as coordenadas x, y e z na qual nosso código Revit C# efetuará alguma ação. Para isso nós podemos usar a função PickPoint() do objeto Selection, que retorna um objeto da classe XYZ. O primeiro passo é acessar o documento ativo UIDocument, por meio de uma chamada a this.ActiveUIDocument. Em seguida nós definimos o tipo de snap usando a enumeração ObjectSnapTypes. Para este exemplo eu usei Endpoints e Intersections, mas você pode usar outros também, tais como Midpoints, Nearest, Intersections, etc. Uma vez obtido o tipo de snap, nós o usamos para a chamada à função PickPoint(). Feito isso nós só precisamos acessar o objeto XYZ retornado e mostrar as suas coordenadas. Veja o código Revit C# completo para o exemplo:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
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 UIDocument ativo
UIDocument uidoc = this.ActiveUIDocument;
// agora mostramos uma mensagem para o usuário selecionar um
// elemento
TaskDialog.Show("Aviso", "Selecione um ponto na área de desenho");
// vamos escolher o tipo de snap
ObjectSnapTypes tiposSnap = ObjectSnapTypes.Endpoints |
ObjectSnapTypes.Intersections;
// agora o usuário seleciona um ponto e nós o guardamos na
// variável ponto, do tipo XYZ
XYZ ponto = uidoc.Selection.PickPoint(tiposSnap,
"Selecione um ponto de extremidade ou intersecção");
// acessamos as coordenadas do ponto
string coordenadas = "X = " + ponto.X + "\nY = " + ponto.Y +
"\nZ = " + ponto.Z;
// e mostramos o resultado
TaskDialog.Show("Revit", "As coordenadas do ponto são:\n" +
coordenadas);
}
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# você terá uma mensagem TaskDialog com um resultado parecido com: As coordenadas do ponto são: X = 4.7533122 Y = 11.429872 Z = 23.3871198 |
C# ::: Windows Forms ::: CheckBox |
Como detectar a mudança de estado da CheckBox do C# Windows Forms usando o evento CheckedChangedQuantidade de visualizações: 10089 vezes |
|
Em algumas situações gostaríamos de efetuar algumas tarefas quando uma CheckBox é marcada ou desmarcada. O melhor lugar para isso é no evento CheckedChanged da própria CheckBox. Este evento é disparado todas as vezes que a CheckBox é marcada ou desmarcada. Coloque uma CheckBox no formulário e dê duplo-clique no controle. Automaticamente o marcador do evento CheckedChanged será criado. Modifique-o para o código abaixo:
private void checkBox1_CheckedChanged(object sender, EventArgs e){
// vamos verificar se a CheckBox foi marcada ou desmarcada
if((sender as CheckBox).Checked)
MessageBox.Show("A CheckBox foi marcada");
else
MessageBox.Show("A CheckBox foi desmarcada");
}
Note que aqui eu usei o operador as para tratar o controle que gerou o evento (sender) como um objeto da classe CheckBox. |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - JavaScript Avançado - Como remover todas as ocorrências de uma substring em uma string usando uma função recursiva Delphi - Como calcular o coeficiente angular de uma reta em Delphi dados dois pontos no plano cartesiano MySQL - Como usar joins no MySQL |
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 |






