![]() |
|
|
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. |
||
Java ::: Dicas & Truques ::: Timers |
Java Swing Exemplo completo: Como usar um timer para atualizar a hora atual em uma JLabelQuantidade de visualizações: 17840 vezes |
|
Este exemplo mostra como criar uma janela JFrame contendo dois botões JButton, um label JLabel e um timer (java.awt.Timer). Quando o timer dispara, o texto da label é atualizado para refletir a hora atual. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para o exemplo:
package arquivodecodigos;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Calendar;
import java.text.DecimalFormat;
public class Estudos extends JFrame{
JLabel hora;
Timer timer;
DecimalFormat formato;
public Estudos() {
super("Usando timers em Java");
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
formato = new DecimalFormat("00");
// Cria o timer
timer = new Timer(1000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
atualizarHoras();
}
});
// Cria um botão com o texto "Iniciar"
JButton iniciar = new JButton("Iniciar");
iniciar.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
timer.start(); // inicia o timer
}
}
);
// Cria um botão com o texto "Parar"
JButton parar = new JButton("Parar");
parar.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
timer.stop(); // pára o timer
}
}
);
// JLabel que exibirá a hora atual
hora = new JLabel("00:00:00");
// Adiciona os botões à janela
c.add(iniciar);
c.add(parar);
// adiciona o label à janela
c.add(hora);
setSize(350, 250);
setVisible(true);
}
private void atualizarHoras(){
// Cria uma instância de Calendar
Calendar agora = Calendar.getInstance();
// horas, minutos e segundos
int horas = agora.get(Calendar.HOUR);
int minutos = agora.get(Calendar.MINUTE);
int segundos = agora.get(Calendar.SECOND);
hora.setText(formato.format(horas) + ":" +
formato.format(minutos) + ":" +
formato.format(segundos));
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
wxWidgets ::: Dicas & Truques ::: wxFrame |
Como usar a classe wxFrame para criar a janela principal de suas aplicações C++ wxWidgetsQuantidade de visualizações: 2517 vezes |
|
A classe wxFrame, definida no arquivo <wx/frame.h>, herda diretamente da classe wxTopLevelWindow (que herda de wxWindow) e, em geral, é usada para representar a janela principal da aplicação. Em tempo de execução seu tamanho pode ser alterado, maximizado, restaurado e minimizado. Esta janela também inclui uma borda mais grossa, uma barra de títulos e, opcionalmente, uma barra de menus, uma barra de ferramentas ou uma barra de status. Uma wxFrame pode atuar como um contâiner para outros controles, tais como botões, caixa de texto, listas, tabelas, etc. No entanto, não podemos inserir em uma wxFrame uma outra wxFrame ou um diálogo. O construtor não vazio da classe wxFrame é: wxFrame::wxFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr) O parâmetro parent pode ser, e geralmente é, NULL. Se esse valor for diferente de NULL, a frame será minimizada quando sua janela mãe foi minimizada e restaurada quando esta for restaurada. Note que estamos falando de aplicações de janelas de múltiplos documentos (janelas MDI). O parâmetro id é o identificador da janela. Podemos informar -1 para indicar um valor default. O parâmetro title é o texto a ser exibido na barra de títulos da janela. O parâmetro pos é a posição da janela, expressa como um wxPoint (coordenada x e y). Se fornecermos o valor wxDefaultPosition para este parâmetro, a posição da janela será escolhida pelo sistema de janelas ou pela biblioteca wxWidgets, dependendo da plataforma. O parâmetro size é o tamanho da janela, expresso como um wxSize (largura e altura). O valor wxDefaultSize indica o tamanho padrão (default), escolhido pelo sistema de janelas ou pela biblioteca wxWidgets, dependendo da plataforma. O parâmetro style é o estilo da janela. O valor padrão é wxDEFAULT_FRAME_STYLE (que pode ser redimensionada, possui um botão de minimizar, de maximizar, etc). O parâmetro name é usado para associar a janela com um item nomeado, permitindo a personalização individual da janela em sistemas que usam o Motif. No Windows este parâmetro não possui nenhum efeito. Vamos ao código agora. Veja os arquivos de definição e de implementação para a criação de uma janela wxFrame: Código para janelaprincipal.h:
#ifndef _JANELAPRINCIPAL_H
#define _JANELAPRINCIPAL
#include <wx/wx.h>
// Definição da nossa janela wxFrame
class JanelaPrincipal : public wxFrame{
public:
// construtor não vazio
JanelaPrincipal(const wxChar *titulo, int posX, int posY,
int largura, int altura);
// destrutor
~JanelaPrincipal();
};
#endif // _JANELAPRINCIPAL_H
Código para janelaprincipal.cpp:
#include "janelaprincipal.h"
// arquivo de implementação
JanelaPrincipal::JanelaPrincipal(const wxChar *titulo, int posX,
int posY, int largura, int altura) : wxFrame((wxFrame *)NULL, -1,
titulo, wxPoint(posX, posY), wxSize(largura, altura)){
// não vamos fazer nada aqui por enquanto
}
JanelaPrincipal::~JanelaPrincipal(){
// por enquanto vamos deixar o construtor vazio
}
Agora veja o arquivo de definição e de implementação necessários para a criação e exibição da nossa janela: Código para aplicacao.h:
#include <wx/wx.h>
// arquivo de definição
// declaramos a classe application
class MinhaAplicacao : public wxApp{
public:
// é chamado no startup da aplicação
virtual bool OnInit();
};
// declara MinhaAplicacao& GetApp()
DECLARE_APP(MinhaAplicacao)
Código para aplicacao.cpp
#include "aplicacao.h"
#include "janelaprincipal.h"
// arquivo de implementação
// aqui o wxWidgets cria nosso objeto MinhaAplicacao e o associa
// com a função de entrada main() ou WinMain()
IMPLEMENT_APP(MinhaAplicacao)
bool MinhaAplicacao::OnInit(){
// vamos criar nossa janela
JanelaPrincipal *janela = new JanelaPrincipal(wxT("Cadastro"),
50, 50, 500, 400);
// vamos exibir a janela wxFrame
janela->Show(TRUE);
// essa vai ser a janela principal da aplicação
SetTopWindow(janela);
// podemos iniciar o loop de eventos
return true;
}
Note que, para que a janela seja visível na tela, devemos fazer uma chamada ao método Show() e fornecer o valor TRUE. Esta função é definida originalmente em wxWindow. Veja também que chamamos SetTopWindow() para informar ao wxWidgets que esta é a janela principal, razão pela qual fornecemos o valor NULL para o parâmetro parent. |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms - Como criar uma caixa de texto TextBox do tipo senha (password)Quantidade de visualizações: 15016 vezes |
Algumas vezes precisamos fazer com que um TextBox se comporte como uma caixa de texto do tipo senha. Para isso só precisamos manipular sua propriedade PasswordChar. Esta propriedade pode ser definida em tempo de design (usando a janela de propriedades Properties) ou em tempo de execução. Veja:
private void button2_Click(object sender, EventArgs e){
// vamos definir o caractere a ser usado como máscara para a
// digitação dos caracteres de senha
textBox1.PasswordChar = '*';
}
Em tempo de execução o valor da propriedade PasswordChar pode ser obtido da seguinte forma:
private void button2_Click(object sender, EventArgs e){
// vamos definir o caractere a ser usado como máscara para a
// digitação dos caracteres de senha
textBox1.PasswordChar = '*';
// vamos obter o caractere usado como máscara para a digitação
// dos caracteres de senha
char letra = textBox1.PasswordChar;
MessageBox.Show("O caractere usado para a propriedade PasswordChar é: " +
letra);
}
É possível também forçar o TextBox a usar o caractere de senha usado pelo Windows. Para isso só precisamos fornecer o valor true para a propriedade UseSystemPasswordChar. Veja:
private void button2_Click(object sender, EventArgs e){
// queremos que o caractere usado como máscara para a digitação
// de senhas seja o mesmo do sistema
textBox1.UseSystemPasswordChar = true;
}
|
GoLang ::: Fundamentos da Linguagem ::: Laços de Repetição |
Como usar o laço for em GoLang - O laço for da linguagem GoQuantidade de visualizações: 1356 vezes |
|
Como todas (ou praticamente todas) as linguagens de programação, a GoLang também possui o seu laço for, ou loop for. Este laço é usado para repetir uma ou mais instruções quando sabemos exatamente quantas vezes essa repetição ocorrerá. Em Go, o laço for é composto de três partes: inicialização, teste de continuidade e incremento ou decremento da variável de controle. Na parte da inicialização nós declaramos e inicializamos as variáveis que serão usadas dentro da estrutura. O teste de continuidade é a parte na qual verificamos se o laço deverá continuar repetindo ou encerrar. Finalmente, a parte de incremento ou decremento é usada para ajustarmos a variável de controle do laço. Veja, por exemplo, como escrever um laço for em GoLang que contará de 1 até 10, escrevendo os números na tela:
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
for i := 1; i <= 10; i++ {
fmt.Printf("%d ", i)
}
}
Ao executar este código Go nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 O laço for da linguagem GoLang nos permite omitir as partes da inicialização e de incremento ou decremento, embora esse tipo de código não seja muito usual. Veja um trecho de código no qual usamos o laço for da linguagem Go para contar de 10 até 0 (omitindo a parte da inicialização da variável de controle):
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
i := 10 // definimos o valor inicial aqui
for ; i >= 0; i-- {
fmt.Printf("%d ", i)
}
}
Ao executarmos este código Go nós teremos o seguinte resultado: 10 9 8 7 6 5 4 3 2 1 0 Veja, agora, uma modificação do código acima. Desta vez eu omiti a parte de incremento ou decremento da variável de controle:
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
for i := 10; i >= 0; {
fmt.Printf("%d ", i)
i--
}
}
|
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Android Java - Como detectar um clique em um botão do Android usando setOnClickListener() e exibir uma mensagem AlertDialog Java - Apostila de Java - Como retornar uma substring em Java usando o método substring() da classe String Revit C# - Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# API PHP - Manipulação de texto em PHP - Como acessar e modificar os caracteres individuais de uma string |
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 |






