Curso JBuilder Aula 02

Transcrição

Curso JBuilder Aula 02
Exemplo08 – Barra de Progresso
Passos para a elaboração da aplicação
1. Selecione this no Structure Pane, que corresponde ao formulário.
2. Adicione ao formulário três componentes jPanel da guia Swing Containers.
3. No jPanel1:
1. Coloque a propriedade constraints como “North”.
2. Na propriedade layout defina “VerticalLayout”. Selecione verticalLayout1 no
Structure Pane e fixe suas propriedades hgap e vgap como “5” e “15”
respectivamente.
3. Adicione um componente jLabel e defina sua propriedade text como “Valor:
0%”.
4. Adicione também um componente jProgressBar na guia Swing.
4. No jPanel2:
1. Coloque a propriedade constraints como “West”.
2. Na propriedade layout defina “GridLayout”. Selecione gridLayout1 no Structure
Pane e coloque suas propriedades hgap e vgap como “5” e as propriedades
columns e rows como “2” e “2” respectivamente.
3. Adicione dois componentes jLabel e dois componentes jTextField. Na
propriedade text dos jLabels coloque “Mínimo” e “Máximo” e na propriedade
text dos jTextFIeld “0” e “100” respectivamente com os rótulos indicados pelos
jLabels.
5. No jPanel3:
1. Coloque a propriedade constraints como “Center”.
2. Na propriedade layout defina “FlowLayout”. Selecione flowLayout1 no
Structure Pane e fixe suas propriedades hgap e vgap como “15” e “10” e a
propriedade alignment como “RIGHT”.
3. Adicione dois componentes jButtons. Nas propriedades text coloque “+”
(símbolo de adição) e “-” (símbolo de subtração).
6. Coloque a propriedade title do this como “Instalação”.
Tela de Execução
1
Crie o seguinte procedimento:
private void define()
{
try
{
jProgressBar1.setMinimum(Integer.parseInt(jTextField1.getText()));
jProgressBar1.setMaximum(Integer.parseInt(jTextField2.getText()));
}
catch(NumberFormatException erro)
{
if (jTextField1.getText().equals("")) jTextField1.setText("0");
if (jTextField2.getText().equals("")) jTextField2.setText("100");
}
}
No evento actionPerformed do jButton1, que deve corresponder ao botão responsável pela
adição, digite:
define();
jProgressBar1.setValue(jProgressBar1.getValue() + 3);
jLabel1.setText("Valor: " + jProgressBar1.getValue() + "%");
No evento actionPerformed do jButton2, que deve corresponder ao botão responsável pela
subtração, digite:
define();
jProgressBar1.setValue(jProgressBar1.getValue() - 3);
jLabel1.setText("Valor: " + jProgressBar1.getValue() + "%");
Exemplo09 - Slider
Passos para elaboração da aplicação
1. Selecione o this (formulário) no Structure Pane.
2. Adicione ao formulário dois componentes jPanel da guia Swing Containers da
Paleta de Componentes.
3. No jPanel1:
1. Fixe a propriedade constraints como “North”.
2. Na propriedade layout defina “FlowLayout”.
3. Adicione um componente jLabel. Na propriedade text coloque “JBuilder”. Na
propriedade font, escolha a fonte “SansSerif”, defina size como “75” e marque a
opção referente a bold (negrito).
4. No jPanel2:
1. Fixe a propriedade constraints como “South”.
2. Na propriedade layout escolha “VerticalFlowLayout”.
2
3. Adicione um componente jSlider da guia Swing da Paleta de Componentes.
5. Coloque “Tamanho da Fonte” na propriedade title do this (formulário).
Tela de Execução
No evento stateChanged do jSlider adicione o código abaixo:
jLabel1.setFont(new java.awt.Font("SansSerif", 1, jSlider1.getValue()));
No evento windowActivated do this coloque:
jLabel1.setFont(new java.awt.Font("SansSerif", 1, 11));
jSlider1.setValue(11);
Exemplo10 – RadioButtons
Passos para elaboração da aplicação
1. Selecione this no Structure Pane.
2. Adicione três componentes jPanel ao formulário.
3. No jPanel1:
1. Coloque a propriedade constraints como “North”.
2. Defina “GridLayout” na propriedade layout. Selecione “gridLayout1” e coloque
suas propriedades columns e rows como “2” e “1” e hgap e vgap com valor “5”
cada uma.
3. Adicione um componente jLabel e um jTextField. Na propriedade text do
jLabel1 coloque “Valor da Compra:” e deixe a mesma propriedade vazia no
jTextFierld1.
4. No jPanel2:
1. Fixe sua propriedade constraints como “Center”.
2. Defina
“VerticalFlowLayout”
na
propriedade
layout.Selecione
verticalFlowLayout1, altere sua propriedade alignment para “MIDDLE” e
coloque “25” na propriedade hgap.
3. Adicione três componentes jRadioButton da guia Swing da Paleta de
Componentes. Mude a propriedade text dos três jRadioButons para “Grande São
3
Paulo”, “Interior de São Paulo” e “Outros Estados”. Mude a propriedade
selected do jRadioButton1 para “True”.
4. Adicione também um ButtonGroup da guia Swing. Na propriedade buttonGroup
dos três jRadioButtons selecione a opção buttonGroup1 que corresponde ao
componente ButtonGroup adicionado a aplicação.
5. No jPanel3:
1. Coloque sua propriedade constraints como “South”.
2. Defina a propriedade layout como “GridLayout”. Selecione gridLayout2,
referente ao jPanel3, e fixe suas propriedades columns e rows com “2” e “1” e
hgap e vgap com “5” cada uma.
3. Adicione um jLabel, com a propriedade text definida como “Valor com frete:”,
e um jTextField com a propriedade text vazia.
6. Coloque o título “Cobrança de Frete” na propriedade title do this (formulário).
Tela de Execução
Crie o seguinte procedimento:
void calcula()
{
if (jTextField1.getText().equals(""))
{
jTextField2.setText("0");
return;
}
try
{
double valorFrete = 0;
NumberFormat formata;
formata = NumberFormat.getNumberInstance();
formata.setMinimumFractionDigits(2);
float valor = Float.parseFloat(jTextField1.getText());
if (jRadioButton1.isSelected())
{
valorFrete = valor + valor * 0.005;
}
else if (jRadioButton2.isSelected())
{
valorFrete = valor + valor * 0.023;
4
}
else
{
valorFrete = valor + valor * 0.05;
}
jTextField2.setText(" " + formata.format(valorFrete));
}
catch (NumberFormatException erro)
{
jOptionPane1.showMessageDialog(null,"Digite apenas caracteres
numéricos.","Erro de Cálculo",jOptionPane1.ERROR_MESSAGE);
}
}
}
No evento caretUpdate do jTextField e no evento actionPerformed dos três jRadioButton,
chame o procedimento digitando:
calcula();
Reutilização de Classes
1. Crie uma nova classe através no menu File | New Class. Será aberta a janela
mostrada na figura seguinte.
5
2. Defina o pacote da classe em Package. Nesta demonstração manteremos o pacote
correspondente ao exemplo10, de mesmo nome.
3. Em Class Name definimos o nome da classe que será criada. De forma que a classe
que já temos chama-se Frame1, chamáramos essa de Frame2.
4. Clique no botão “OK” para concluir a criação da nova classe. O código gerado para
essa nova classe será o demonstrado abaixo:
package exemplo10;
/**
* <p>Title: Minha Classe</p>
* <p>Description: Reutilizando calsses</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: TiSoft</p>
* @author Sergio Furgeri
* @version 1.0
*/
public class Frame2 {
public Frame2() {
}
}
5. Após a linha que declara o pacote (packege), ou seja, a primeira inclua as seguintes
linhas de importação de componentes para utilização dos objetos referenciados na
classe que iremos chamar, no caso a classe Frame1. As linhas são:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
6. No public class, exatamente após Frame2 inclua extends Frame1 que será a
classe a ser reutilizada.
7. Dentro das chaves de abertura e fechamento do public Frame2 (), será incluído um
pequeno trecho de código para que possamos observar os efeitos na execução
aplicação. Digite:
jLabel1.setForeground(Color.red);
jLabel2.setForeground(Color.red);
8. Após as alterações que foram feitas, o código da classe Frame2 deve estar
semelhante com o demonstrado abaixo:
package exemplo10;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* <p>Title: Minha Classe</p>
6
*
*
*
*
<p>Description: Reutilizando calsses</p>
<p>Copyright: Copyright (c) 2004</p>
<p>Company: TiSoft</p>
@author Sergio Furgeri
* @version 1.0
*/
public class Frame2 extends Frame1 {
public Frame2() {
jLabel1.setForeground(Color.red);
jLabel2.setForeground(Color.red);
}
}
9. Para que seja possível que a classe Frame2 seja criada primeiramente, é necessário
alterar o código na classe Application1. Dentro do public Application1 (), onde
anteriormente era declarado o Frame1, agora será declarado o Frame2:
Antes: Frame1 frame = new Frame1();
Depois: Frame2 frame = new Frame2();
10. Execute a aplicação através do botão Run da barra de Ferramentas. A aplicação
deverá estar semelhante a figura que segue, onde podemos notar as alterações
incluídas no Frame2 (se refere a alteração da cor da fonte dos jLabels), mesmo a
código pertencendo praticamente todo a classe Frame1, que foi apenas chamado e
reutilizado.
Exemplo11 - CheckBoxs
Passos para elaboração da aplicação.
1. Selecione o this (formulário) no Structure Pane.
2. Adicione um jPanel ao formulário. Fixe suas propriedades constraints como
“Center” e layout como “GridLayout”.
7
3. Selecione gridLayout1 no Structure Pane e fixe suas propriedades columns e rows
com os valores “2” e “7” respectivamente, e hgap e vgap ambas com o valor “5”.
4. Adicione ao jPanel1 os seguintes componentes 1 jButton, 6 jCheckBoxs, e 7
jTextFields, todos da guia Swing da Paleta de Componentes.
5. Inclua um jOptionPane a aplicação, colocando ele sobre a pasta UI do Structure
Pane.
6. Mude a propriedade text dos jCheckBoxs conforme segue abaixo:
- jCheckBox1: coloque “Leite Desnatado”.
- jCheckBox2: coloque “Arroz Agulhinha”.
- jCheckBox3: coloque “Café Solúvel”.
- jCheckBox4: coloque “Feijão Carioquinha”.
- jCheckBox5: coloque “Açúcar Cristal”.
- jCheckBox6: coloque “Farinha de Trigo”.
7. Mude a propriedade text dos jTextFields para “0” (zero). No jTextField7, defina a
propriedade editable como “False”.
8. Mude a propriedade text do jButton1 para “Calcular”.
9. Coloque “Lista de Compras” na propriedade title do this.
Tela de Execução
No evento actionPerformed do jButton1 digite:
float total=0;
int x=0;
try
{
if (jCheckBox1.isSelected())
{
total = total + Float.parseFloat(jTextField1.getText());
x = x + 1;
}
if (jCheckBox2.isSelected())
{
total = total + Float.parseFloat(jTextField2.getText());
8
x = x + 1;
}
if (jCheckBox3.isSelected())
{
total = total + Float.parseFloat(jTextField3.getText());
x = x + 1;
}
if (jCheckBox4.isSelected())
{
total = total + Float.parseFloat(jTextField4.getText());
x = x + 1;
}
if (jCheckBox5.isSelected())
{
total = total + Float.parseFloat(jTextField5.getText());
x = x + 1;
}
if (jCheckBox6.isSelected())
{
total = total + Float.parseFloat(jTextField6.getText());
x = x + 1;
}
jTextField7.setText( "Itens:" + x + ", Total: " + total);
}
catch (NumberFormatException a)
{
jOptionPane1.showMessageDialog(null, "Há itens selecionados que não
contém valores numéricos válidos","Erro",jOptionPane1.ERROR_MESSAGE);
}
}
Exemplo12 – Barra de Rolagem
Passos para elaboração da aplicação
1. Selecione o formulário (this no Structure Pane).
2. Adicione dois jPanel ao formulário.
3. No jPanel1:
1. Fixe a propriedade constraints como “North”.
2. Escolha “GridLayout” na propriedade layout. Selecione gridLayout1 no
Structure Pane, e defina suas propriedades columns e rows como “3” e “1”
respectivamente e as propriedades hgap e vgap ambas com o valor “5”.
3. Adicione dois jCheckBox e um jTextField. Na propriedade text dos dois
jCheckBoxs coloque “ScrollBar 1” e “ScrollBar 2” respectivamente. No
jTextField1, a propriedade text deve ficar com valor “0” e a propriedade
editable como “False”.
4. No jPanel2:
1. Fixe a propriedade constraints como “Center”.
2. Defina a propriedade layout como “GridLayout”. Selecione gridLayout2 no
Structure Pane, e defina suas propriedades columns e rows como “1” e “4”, e
também as propriedades hgap e vgap ambas com valor “5”.
9
3. Adicione dois jLabels e dois jScrollBars.
4. Na propriedade text dos jLabels coloque apenas “Valor do ScrollBar 1:” e
“Valor do ScrollBar 2” respectivamente.
5. Na propriedade unitIncrement dos jScrollBars coloque o valor “1”.
6. na propriedade visibleAmount dos jScrollBars coloque o valor “0”.
5. Na propriedade title do this coloque “ScrollBar”.
Tela de Execução
No evento actionPerformed do jCheckBox1 digite:
if (!jCheckBox1.isSelected())
{
jScrollBar1.setValue(0);
jTextField1.setText("0");
}
No evento actionPerformed do jCheckBox2 digite:
if (!jCheckBox2.isSelected())
{
jScrollBar2.setValue(0);
jTextField1.setText("0");
}
No evento adjustmentValueChanged do jScrollBar1 coloque:
if (jCheckBox1.isSelected())
jTextField1.setText( "" + jScrollBar1.getValue());
else
jScrollBar1.setValue(0);
No evento adjustmentValueChanged do jScrollBar2 coloque:
if (jCheckBox2.isSelected())
jTextField1.setText( "" + jScrollBar2.getValue());
else
jScrollBar2.setValue(0);
10

Documentos relacionados