JonaTHANNM:
*robson:
Tentei fazer isso e não funcionou…
mesmo assim valeu cara!
=)
por favor, poste o código.
Qual tipo de objeto você está tentando guardar nessa variavel
private Object resultado;
da classe Jsoma???
É porque seu código está bem bagunçado mas você quer mostrar apenas 1 resultado ou quer que ele vai mostrando vários resultado a médida com que o usuário aperta em ok para calcular???
porque eu percebi que você também adiciona uma barra de rolação a variavel resultado da classe Jsoma
Uma correção rápida em seu código seria
A classe Jsoma ficaria assim
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.text.JTextComponent;
@SuppressWarnings("serial")
public class Jsoma extends JWindow {
private JLabel lbTitulo;
private JButton btFechar;
private JTextArea resultTextArea;
private Integer resultado;
public Jsoma(String titulo, Integer soma) {
Container c = this.getContentPane();
Border raisedBorder = BorderFactory.createRaisedBevelBorder();
((JComponent) c).setBorder(raisedBorder);
c.setLayout(null);
setSize(500, 270);
setLocationRelativeTo(null);
//atribui o resultado da soma
this.resultado = soma;
this.criarLabels(c);
this.criarBotoes(c);
this.createTextArea(c);
setVisible(true);
}
private void createTextArea(Container c) {
//aqui foi alterado e agora criado um area de texto e pega o que foi guardado no objeto resultado
JTextArea areaResultado = new JTextArea();
areaResultado.setText(this.resultado+"");
areaResultado.setEditable(false);
areaResultado.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
JScrollPane scroller = new JScrollPane(areaResultado);
scroller.setBounds(20, 60, 450, 130);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(scroller);
}
private void criarLabels(Container c) {
this.lbTitulo = new JLabel("Resultado");
this.lbTitulo.setBounds(200, 20, 200, 20);
this.lbTitulo.setFont(new Font("Arial", Font.BOLD, 16));
this.lbTitulo.setForeground(Color.BLUE);
this.lbTitulo.setToolTipText("Calculor de Primos");
c.add(this.lbTitulo);
}
private void criarBotoes(Container c) {
this.btFechar = new JButton("Fechar");
this.btFechar.setBounds(200, 200, 80, 20);
this.btFechar.setToolTipText("Clique aqui para fechar a janela");
this.btFechar.setActionCommand("FECHAR");
OuvinteBotao ouvinteBotao = new OuvinteBotao();
this.btFechar.addActionListener(ouvinteBotao);
c.add(this.btFechar);
}
// classe private para tratar os eventos dos botões
private class OuvinteBotao implements ActionListener {
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() instanceof JButton) {
JButton jb = (JButton) ae.getSource();
if ("FECHAR".equals(jb.getActionCommand())) {
Jsoma.this.dispose();
}
}
}
}
}
e na classe Janela altere isso
private class OuvinteBotao implements ActionListener {
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() instanceof JButton) {
JButton jb = (JButton) ae.getSource();
if ("OK".equals(jb.getActionCommand())) {
System.out.println("Tela de resultado");
Jsoma js = new Jsoma("Resultado");
}
else if ("FECHAR".equals(jb.getActionCommand())) {
System.exit(1);
}
}
} }
}
por isso
private class OuvinteBotao implements ActionListener {
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() instanceof JButton) {
JButton jb = (JButton) ae.getSource();
if ("OK".equals(jb.getActionCommand())) {
System.out.println("Tela de resultado");
//mande a soma por parametro do construtor
Jsoma js = new Jsoma("Resultado", (Integer.parseInt(tf1.getText())+Integer.parseInt(tf2.getText())));
} else if ("FECHAR".equals(jb.getActionCommand())) {
System.exit(1);
}
}
}
}