![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Cards de Ética e Legislação Profissional |
||
|
||
|
|
||
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como colorir as células de uma JTable individualmente ao passar o mouse sobre elasQuantidade de visualizações: 2 vezes |
|
Nesta dica eu mostro como é possível aplicar uma cor diferente às células individuais de uma JTable ao passar o mouse em cima delas. O efeito visual é muito interessante, principalmente quando temos uma JTable com muitos dados. No exemplo eu construí a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual. É um ótimo exercício para realmente entender as partes que compoem uma aplicação Java Swing. Veja o código Java completo:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.event.*;
public class Estudos extends JFrame{
int linha, coluna;
public Estudos(){
super("JTable");
// colunas da tabela
String[] colunas = {"Cidade", "Estado", "Habitantes"};
// conteúdo da tabela
Object[][] conteudo = {
{"Goiânia", "GO", "43.023.432"},
{"São Paulo", "SP", "5.343.234"},
{"Rio de Janeiro", "RJ", "6.434.212"},
{"Jussara", "GO", "87.454"},
{"Barra do Garças", "MT", "64.344"}
};
// constrói a tabela
final JTable tabela = new JTable(conteudo, colunas);
tabela.setPreferredScrollableViewportSize(new
Dimension(350, 50));
class CellListener extends MouseMotionAdapter{
public void mouseMoved(MouseEvent e){
JTable tb = (JTable)e.getSource();
linha = tb.rowAtPoint(e.getPoint());
coluna = tb.columnAtPoint(e.getPoint());
tb.repaint();
}
}
class ColorirCelula extends JLabel
implements TableCellRenderer{
public ColorirCelula(){
setOpaque(true);
}
public Component getTableCellRendererComponent(
JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column){
if(row == linha && column == coluna){
this.setBackground(Color.yellow);
}
else{
this.setBackground(table.getBackground());
}
this.setText(value.toString());
return this;
}
}
Container c = getContentPane();
c.setLayout(new FlowLayout());
tabela.addMouseMotionListener(new CellListener());
tabela.setDefaultRenderer(Object.class,
new ColorirCelula());
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Ao executarmos esta aplicação Java Swing nós teremos o seguinte resultado: ![]() |
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: 9244 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 |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar construtores em suas classes Java - Programação orientada a objetos em Java - Métodos construtores - RevisadoQuantidade de visualizações: 20286 vezes |
|
Muitas vezes precisamos inicializar propriedades de um objeto de uma classe Java no momento em que este é criado. Para isso podemos usar um método construtor. Um método construtor, que em Java é definido por um método com o mesmo nome da classe, é chamado no exato momento em que efetuamos uma chamada a new. Veja um exemplo no qual exibimos uma mensagem alertando que um objeto de uma classe acaba de ser criado:
class Pessoa{
public Pessoa(){
System.out.println("Fui criado.");
}
}
public class Estudos{
public static void main(String args[]){
// cria um objeto da classe Pessoa
Pessoa p = new Pessoa();
}
}
Execute este código e veja o resultado. Note que um construtor deve, exceto em raríssimas ocasiões, ser marcado com o modificador public. Além disso, um construtor não possui retorno e só se torna realmente útil quando o usamos para inicializar as propriedades do objeto recém-criado. Veja:
class Pessoa{
public String nome;
public Pessoa(String nome){
this.nome = nome;
}
}
public class Estudos{
public static void main(String args[]){
// cria um objeto da classe Pessoa
Pessoa p = new Pessoa("Osmar J. Silva");
System.out.println(p.nome);
}
}
Aqui nós fornecemos o valor para a propriedade nome na mesma instrução que cria a instância da classe. Quando não definimos um método construtor, o compilador Java o faz nos bastidores. Mas isso só ocorre quando não definimos o nosso próprio método construtor, seja ele com ou sem parâmetros. |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como gerar um vetor com valores igualmente espaçados usando a função linspace() da biblioteca NumPy do Python - Python NumPy para EngenhariaQuantidade de visualizações: 2918 vezes |
|
Em algumas situações nós precisamos de vetores e matrizes com valores igualmente espaçados entre um determinado intervalo. Para isso nós podemos usar a função linspace() da biblioteca NumPy do Python. Esta função exige, entre vários argumentos, o início e o fim do intervalo. Vamos ver um exemplo? Observe o trecho de código a seguir:
# vamos importar a biblioteca NumPy
import numpy as np
def main():
valores = np.linspace(2, 5, num=10)
print("O vetor gerado foi: ", valores)
if __name__== "__main__":
main()
Este código Python vai gerar o seguinte resultado: O vetor gerado foi: [2. 2.33333333 2.66666667 3. 3.33333333 3.66666667 4. 4.33333333 4.66666667 5. ] Note que informamos o valor inicial como 2 e o valor final como 5, e definimos a quantidade de elementos gerados como 10 (se omitida, 50 valores serão gerados). Se não quisermos que o valor final do intervalo seja incluído na amostra, basta informamos endpoint=False como argumento para a função linspace(). |
PHP ::: PHP + XML ::: SimpleXML |
Como usar a função simplexml_load_file() do PHP para carregar um arquivo XML e convertê-lo em um objeto SimpleXMLElementQuantidade de visualizações: 5403 vezes |
A função simplexml_load_file() pode ser usada quando queremos carregar um arquivo XML e convertê-lo em um objeto da classe SimpleXMLElement. Veja a assinatura desta função:SimpleXMLElement simplexml_load_file(string $filename [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false]]]]) Este método possui alguns parâmetros que são opcionais. O único parâmetro exigido é o nome e/ou caminho do arquivo XML a ser carregado. Código para clientes.xml:
<?xml version="1.0" encoding="iso-8859-1"?>
<cadastro>
<cliente id="14" ativo="true">
<nome>Osmar J. Silva</nome>
<email>osmar@arquivodecodigos.com.br</email>
</cliente>
<cliente id="75" ativo="false">
<nome>Cintia Gomes Arantes</nome>
<email>cintia@arquivodecodigos.com.br</email>
</cliente>
</cadastro>
Veja agora como carregar o conteúdo deste arquivo e convertê-lo em um objeto SimpleXMLElement:
<?
$xml = simplexml_load_file("clientes.xml");
print_r($xml);
?>
Ao executarmos este código teremos o seguinte resultado: SimpleXMLElement Object ( [cliente] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 14 [ativo] => true ) [nome] => Osmar J. Silva [email] => osmar@arquivodecodigos.net ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 75 [ativo] => false ) [nome] => Cintia Gomes Arantes [email] => cintia@arquivodecodigos.net ) ) ) Neste documento XML nós temos dois clientes, ou seja, temos um objeto SimpleXMLElement que contém um array de outros dois objetos SimpleXMLElement (um para cada cliente). Para verificarmos se isso é realmente verdade, veja o trecho de código abaixo:
<?
// carrega o arquivo XML e o converte em um objeto SimpleXMLElement
$xml = simplexml_load_file("clientes.xml");
// vamos mostrar os dados do primeiro cliente
echo "Nome: " . $xml->cliente[0]->nome . "<br>";
echo "E-Mail: " . $xml->cliente[0]->email;
?>
Ao executarmos este código teremos o seguinte resultado: Nome: Osmar J. Silva E-Mail: osmar@arquivodecodigos.com.br |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





