Amigos fiz o seguinte
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package empresario11;
/**
*
-
@author Administrador
*/
public class passa_valor {
private String v1;
private String v2;
public passa_valor() {
this.v1 = “”;
this.v2 = “”;
}
public passa_valor(String v1, String v2) {
super();
this.v1 = v1;
this.v2 = v2;
}
public String getv2() {
return v2;
}
public void setv2(String v2) {
this.v2 = v2;
}
public String getv1() {
return v1;
}
public void setv1(String v1) {
this.v1 = v1;
}
}
[/code]
Na tela eu passo o valor assim: na tela 1!!
import empresario11.passa_valor.*;
passa_valor p = new passa_valor();
p.setv1("xxxxxx");
Agora eu faria para que na tela 2… eu pudesse recuperar o valor ?
Obrigado.
na outra tela no construtor da tela vc passa os valores como parametros, dessa maneira
vc estancia a tela dessa maneira
tela2 t2 = new tela2(obj.getv1(),obj.getv2());
vc fz dessa maneira
Não entendi o porque do super() no construtor, sua classe não tem superclasse.
Pelo que eu entendi você quer acessar os atributos de p em outra classe diferente da que ele foi criado, você pode usar atributos static ou o padrão de projeto Singleton.
Tem sim… todas as classes (Exceto Object) tem uma superclasse.
Amigos quase entendi. vou colocar meu codigo se algue puder ajudar. agradeco
TELA 1
package empresario11;
import empresario11.JMoneyField.*;
import empresario11.passa_valor.*;
public class tela1 extends javax.swing.JFrame {
passa_valor p = new passa_valor();
/** Creates new form tela1 */
public tela1() {
initComponents();
setBounds(250, 180, 505, 500);
}
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
jButton1.setText("set");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
jButton1.setBounds(51, 207, 78, 23);
jButton3.setText("IR TELA 2");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
getContentPane().add(jButton3);
jButton3.setBounds(249, 207, 108, 23);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
p.setv1("novo valor");
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
new tela2().setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new tela1().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton3;
// End of variables declaration
}
TELA 2
package empresario11;
import empresario11.passa_valor.*;
public class tela2 extends javax.swing.JFrame {
public tela2() {
initComponents();
}
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextField1.setText("jTextField1");
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(69, 69, 69)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(158, 158, 158)
.addComponent(jButton1)))
.addContainerGap(169, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(32, 32, 32)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(56, 56, 56)
.addComponent(jButton1)
.addContainerGap(169, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
/////////// quero pegar o valor aqui !!!!
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new tela2().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JTextField jTextField1;
// End of variables declaration
}
OBRIGADO…
Não sei se entendi sua dúvida, mas sempre que desejo trocar dados entre uma janela é outra faço ± assim:
[ janela 1 ||=|x| ]
valor [3] […]|
________________|
[ janela 2 |_|=|x| ]
valorJ1 [3_] |
________________|
public class Janela1 extends JFrame{
…
public void buttonClick(Event arg){
Janela2 j2 = Janela2(this.txt1.getText());
j2.setVisible(true);
}
}
e
public class Janela2 extends JFrame{
String valoroutrajanela;
…
public Janela2(String valor){
valoroutrajanela = valor;
}
}
Algo nesse rumo, espero ter ajudado.
eu fiz mais ta dando um erro
[code] private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
tela2 t2 = tela2(this.jTextField1.getText());
t2.setVisible(true);
}
[/code]
![](//www.guj.com.br/uploads/default/original/3X/3/0/3090e3386cdcf3dd42184e25e41d2e6cd1146f0d.jpg)
poste o erro que dá… o texto não a imagem.
tela2 t2 = tela2(this.jTextField1.getText());
t2.setVisible(true);
A Classe tela2 (não Tela2) existe?
Pra essa classe existe um construtor que recebe uma string como parâmetro?
Note que :
public Janela2(String valor){
valoroutrajanela = valor;
this.txt2.setText(valoroutrajanela); //inicializando-o
}
aconselho vc usar o patern Singleton
assim sempre que vc sai de uma tela vc seta os valores no Singleton
e na outra tela vc acessa tranquilamente…
Espero ter ajudado
Continuo achando que é melhor usar Singleton é simples e certo que vai funcionar.
TA ENTAO COMO EU USO Singleton?
[code]
view plaincopy to clipboardprint?
/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package empresario11;
/**
*
-
@author Administrador
*/
public class passa_valor {
private String v1;
private String v2;
private static passa_valor p_s=null;
private passa_valor() {
this.v1 = “”;
this.v2 = “”;
}
private passa_valor(String v1, String v2) {
super();
this.v1 = v1;
this.v2 = v2;
}
public passa_vlaor getInstance(){
if (p_s==null) p_s=new passa_valor();
else return p_s;
}
public String getv2() {
return v2;
}
public void setv2(String v2) {
this.v2 = v2;
}
public String getv1() {
return v1;
}
public void setv1(String v1) {
this.v1 = v1;
}
} [/code]
Aí na hora de criar um objeto voce fará assim:
Assim quando você fizer isso na outra janela virá o mesmo objeto, com os mesmos atributos e não um novo objeto