Boas,
Gostaria de uma ajudinha, se possível!
Estou com dois arquivos (duas classes), Classe Imovel e Classe CheckBox.
Porém, a Classe Imovel (main) recebe dois valores, M² do imovel e valor do mesmo.
Informado esses valores, o usuário recebe uma tela (JFrame) com alguns adicionais (Checkbox), onde conforme ele marca, adiciona um % ao valor total do Imóvel.
Eu precisaria que os valores digitados na Classe Imovel fossem recebidos na classe CheckBox para poder fazer os cálculos conforme marcadas as opções apresentadas no JFrame, e depois devolver à classe Imovel para exibir os resultados.
Segue o Código da classe Imovel:
package imovel;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
public class Imovel {
public static void main(String[] args) {
double ValorTotal;
// DecimalFormat FormataValor = new DecimalFormat("0,00");
double M2Total = Double.parseDouble(JOptionPane.showInputDialog(null, "Quantos M² o Imóvel possui?"));
double M2Valor = Double.parseDouble(JOptionPane.showInputDialog(null, "Qual o Valor do M² na região do Imóvel? "));
MyCheckBox Lista = new MyCheckBox();
}
}
Código Classe CheckBox:
package imovel;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
//import java.awt.event.MouseEvent;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
public class MyCheckBox extends JFrame {
JButton Ok;
JButton Sair;
JCheckBox Bairro, Centro, Condominio, Comercio, Rua;
JLabel Escrita = new JLabel("Selecione os Adicionais: ");
JLabel Itens = new JLabel(" Lista de Adicionais ");
Container c = getContentPane();
public MyCheckBox(){
super("Caixa de Adicionais");
setSize(300 , 500);
FlowLayout tela = new FlowLayout(FlowLayout.LEFT, 15, 20); // recebe o alinhamento, hgap e vgap
setLayout(tela);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Criando os JCheckBox
Bairro = new JCheckBox("Bairro Nobre (+40%) ");
Centro = new JCheckBox("Próximo ao Centro (+10%) ");
Condominio = new JCheckBox("Condominio Fechado (+25%) ");
Rua = new JCheckBox("Rua Pavimentada (+10%) ");
Comercio = new JCheckBox("Próximo ao Comércio (+30%) ");
Sair = new JButton(" Sair ");
Sair.addActionListener((ActionEvent e) -> {
System.exit(0);
});
Ok = new JButton(" Ok ");
Ok.addActionListener((ActionEvent e) -> {
JOptionPane.showMessageDialog(null, "O Imóvel Custa: ", "Resultado ",JOptionPane.YES_NO_CANCEL_OPTION);
});
/* Este método funciona, mas o método à cima está com Lambda, por isso ocultou boa parte do code
Ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "O Imóvel Custa: " , "Resultado ",JOptionPane.YES_NO_CANCEL_OPTION);
}
}); */
//Criando e adicionando o handler
CheckBoxHandler tratador = new CheckBoxHandler();
Bairro.addItemListener(tratador);
Centro.addItemListener(tratador);
Condominio.addItemListener(tratador);
Comercio.addItemListener(tratador);
Rua.addItemListener(tratador);
Ok.addItemListener(tratador);
Sair.addItemListener(tratador);
//Adicionando os JCheckBox no Layout
add(Escrita);
add(Bairro);
add(Centro);
add(Condominio);
add(Comercio);
add(Rua);
add(Itens);
add(Ok);
add(Sair);
setVisible(true);
}
private class CheckBoxHandler implements ItemListener{
private String texto = "";
@Override
public void itemStateChanged(ItemEvent evento) {
texto = "";
Escrita.setText("Informe os Adicionais: ");
if(Bairro.isSelected())
texto += " \n Bairro Nobre";
if(Centro.isSelected())
texto += " \n Próximo ao Centro da Cidade";
if(Comercio.isSelected())
texto += " \n Próximo à Comércio";
if(Condominio.isSelected())
texto += " \n Condomínio Fechado";
if(Rua.isSelected())
texto += " \n Rua Pavimentada";
Itens.setText("Itens Adicionais: " +texto);
}
}
}
Bom, se alguem puder ajudar, agradeço desde já.