Olá pessoal blz?
Estou desenvolvendo uma calculadora de endereços de ip de sub-rede e gostaria que vocês dessem uma olhada no meu código para saber como deixar ele mais enxuto. Outra dúvida minha é qual a forma mais correta de se capturar a ação de um botão.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author: Phillip Eduardo Pimenta Forte (; Phpimenta ;)
*
*/
public class CalculadoraSubRede extends JFrame{
private JTextField octeto1 = new JTextField(3);
private JTextField octeto2 = new JTextField(3);
private JTextField octeto3 = new JTextField(3);
private JTextField octeto4 = new JTextField(3);
private JTextField numeroSubRede = new JTextField();
public CalculadoraSubRede () {
this.setTitle("Calculadora de Sub-rede de IP");
this.setSize(400, 200);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new GridBagLayout());
GridBagConstraints cons = new GridBagConstraints();
cons.insets = new Insets(0,10,10,2); // Espaçamento acima, esquerda, abaixo e direita.
cons.gridx = 0; //Coluna
cons.gridy = 0; //Linha
cons.gridwidth = 1; //Número de Colunas Ocupadas
cons.anchor = GridBagConstraints.EAST;
add(new JLabel("Endereço IP :"), cons);
cons.gridx = 1;
cons.gridy = 0;
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(octeto1, cons);
cons.gridx = 2; //Coluna
cons.gridy = 0; //Linha
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(new JLabel("."), cons);
cons.gridx = 3;
cons.gridy = 0;
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(octeto2, cons);
cons.gridx = 4; //Coluna
cons.gridy = 0; //Linha
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(new JLabel("."), cons);
cons.gridx = 5;
cons.gridy = 0;
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(octeto3, cons);
cons.gridx = 6; //Coluna
cons.gridy = 0; //Linha
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(new JLabel("."), cons);
cons.gridx = 7;
cons.gridy = 0;
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(octeto4, cons);
cons.gridx = 0; //Coluna
cons.gridy = 1; //Linha
cons.gridwidth = 1; //Número de Colunas Ocupadas
add(new JLabel("Nº de Sub-Redes :"), cons);
cons.gridx = 1;
cons.gridy = 1;
cons.gridwidth = 3; //Número de Colunas Ocupadas
cons.fill = GridBagConstraints.BOTH;
add(numeroSubRede, cons);
cons.gridx = 1;
cons.gridy = 2;
cons.gridwidth = 3; //Número de Colunas Ocupadas
JButton calcular = new JButton("Calcular");
calcular.addActionListener( new Buttons () );
add(calcular, cons);
cons.gridx = 4;
cons.gridy = 2;
cons.gridwidth = 3; //Número de Colunas Ocupadas
JButton limpar = new JButton("Limpar");
limpar.addActionListener( new Buttons () );
add(limpar, cons);
cons.gridx = 0; //Coluna
cons.gridy = 3; //Linha
cons.gridwidth = 2; //Número de Colunas Ocupadas
add(new JLabel("Classe do IP :"), cons);
this.setVisible(true);
}
private class Buttons implements ActionListener {
public void actionPerformed ( ActionEvent event ) {
if (event.getActionCommand().equals("Calcular")) {
if ( octeto1.getText().equals("") || octeto2.getText().equals("")
|| octeto3.getText().equals("") || octeto4.getText().equals("") || numeroSubRede.getText().equals("") ) {
JOptionPane.showMessageDialog(null, "Todos os campos devem estar preenchidos.");
} else {
String valorOcteto1 = octeto1.getText();
int x = Integer.parseInt(valorOcteto1);
}
}
if (event.getActionCommand().equals("Limpar")) {
int resposta = JOptionPane.showConfirmDialog(null, "Tem certeza que desejar limpar o formulário?");
/*
* 0 YES_OPTION - ao clicar no botão Yes (sim)
* 1 NO_OPTION - ao clicar no botão No (não)
* 2 CANCEL_OPTION - ao clicar no botão Cancel (cancelar)
*/
if ( resposta == 0 ) {
octeto1.setText(null);
octeto2.setText(null);
octeto3.setText(null);
octeto4.setText(null);
numeroSubRede.setText(null);
}
}
}
}
public static void main(String[] args) {
new CalculadoraSubRede();
}
}