Como passar as informações deste JTextField deste JFrame para Outro JtextField de outro JFrame

3 respostas
W
import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JFrame;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import javax.swing.JRadioButton;

import javax.swing.ImageIcon;
public class NovaEntrada extends JFrame implements ActionListener

{

private JLabel lblData, lblVolumeDoDia, lblQuantidadeDeChuva, lblCalendario;

private JButton btnOK;

public JTextField txtData, txtVolumeDoDia, txtQuantidadeDeChuva;

private JRadioButton rbtnPorcentagem, rbtnMetrosCubicos;
public NovaEntrada()

{

super(Nova Entrada);
btnOK = new JButton("OK");
  lblData = new JLabel("Data: ");
  lblVolumeDoDia = new JLabel("Volume do dia: ");
  lblQuantidadeDeChuva = new JLabel("Quantidade de chuva: ");
  lblCalendario = new JLabel();
  txtData = new JTextField(8);
  txtVolumeDoDia = new JTextField(15);
  txtQuantidadeDeChuva = new JTextField(15);
  rbtnPorcentagem = new JRadioButton("Porcentagem");
  rbtnMetrosCubicos = new JRadioButton("Mestros cúbicos (m³)");
  
  Container caixa = getContentPane();
  caixa.setLayout(new FlowLayout());
  
  caixa.add(lblData);
  caixa.add(txtData);
  caixa.add(lblCalendario); //insere a imagem do calendário
  caixa.add(lblVolumeDoDia);
  caixa.add(txtVolumeDoDia);
  caixa.add(rbtnPorcentagem);
  caixa.add(rbtnMetrosCubicos);
  caixa.add(lblQuantidadeDeChuva);
  caixa.add(txtQuantidadeDeChuva);
  caixa.add(btnOK);   
  
  btnOK.addActionListener(this);
  rbtnPorcentagem.addActionListener(this);
  rbtnMetrosCubicos.addActionListener(this);
  
  setSize(245,270);
  setLocationRelativeTo(null);
  setVisible(true);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  lblCalendario.setIcon(new ImageIcon("D:\\aulas usjt\\projeto interdisciplinar\\java - modelo 2 (tabela de nova entrada)\\calendario.png"));  //seleciona a imagem

}

//Eventos

public void actionPerformed(ActionEvent e)

{

if(e.getSource() == rbtnPorcentagem)

{

rbtnMetrosCubicos.setSelected(false);

//fazer o tipo de cálculo para porcentagem e não deixar que a segunda opção seja marcada simultaneamente

}

else if(e.getSource() == rbtnMetrosCubicos)

{

rbtnPorcentagem.setSelected(false);

//fazer o cálculo para metros cúbicos e não deixar que a primeira opção seja marcada simultaneamente

}
else if(e.getSource() == btnOK)
     {
        if((txtData.getText().trim().equals("")) || (txtVolumeDoDia.getText().trim().equals("")) || 
           (txtQuantidadeDeChuva.getText().trim().equals("")))      //verifica se foi digitado algo nos campos txt
        {
        System.out.println("ERRO: ha um ou mais campos em branco.");
        }
        else if((rbtnPorcentagem.isSelected() == false) && (rbtnMetrosCubicos.isSelected() == false))       //verifíca se os JRButtons estão selecionados ou não
        {
        System.out.println("ERRO: o tipo de calculo nao foi selecionado (porcentagem ou m³).");
        }
        else
        {
        new NovaEntrada2();
        }
        
     }

}

//outros métodos

public String Acesso()

{

return

txtData.getText();

}

}

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JFrame;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import javax.swing.JRadioButton;

import javax.swing.ImageIcon;
public class NovaEntrada2 extends JFrame

{

private NovaEntrada novaentrada;

private JLabel lblMsgDados, lblData, lblVolumeDoDia, lblQuantidadeDeChuva;

private JButton btnSim, btnNao;

private JTextField txtData, txtVolumeDoDia, txtQuantidadeDeChuva;
public NovaEntrada2()

{

super(Nova Entrada);
lblMsgDados = new JLabel("Os dados a seguir estão corretos?");
  lblData = new JLabel("Data: ");
  lblVolumeDoDia = new JLabel("Volume do dia: ");
  lblQuantidadeDeChuva = new JLabel("Quantidade de chuva: ");
  btnSim = new JButton("Sim");
  btnNao = new JButton("Não");
  txtData = new JTextField();
  txtVolumeDoDia = new JTextField();
  txtQuantidadeDeChuva = new JTextField();
  
  Container caixa = getContentPane();
  caixa.setLayout(new FlowLayout());
  
  caixa.add(lblMsgDados);
  caixa.add(lblData);
  caixa.add(txtData);
  caixa.add(lblVolumeDoDia);
  caixa.add(txtVolumeDoDia);
  caixa.add(lblQuantidadeDeChuva);
  caixa.add(txtQuantidadeDeChuva); 
  caixa.add(btnSim);
  caixa.add(btnNao);

// btnSim.addActionListener(this);
// btnNao.addActionListener(this);

setSize(230,205);
  setLocationRelativeTo(null);
  setVisible(true);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

----------------------------------------------------------POR FAVOR------------------------------------------------------------------------
Aqui estão os códigos. preciso passar o conteúdo que será digitado no JTextField do NovaEntrada para o NovaEntrada2. Sempre que eu tento executar, uma sequência ENORME de erros aparecem:
----------------------------------------------------------ME AJUDEM!----------------------------------------------------------------------

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at java.awt.Container.addImpl(Container.java:1093)

at java.awt.Container.add(Container.java:417)

at NovaEntrada2.(NovaEntrada2.java:37)

at NovaEntrada.actionPerformed(NovaEntrada.java:86)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6533)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)

at java.awt.Component.processEvent(Component.java:6298)

at java.awt.Container.processEvent(Container.java:2236)

at java.awt.Component.dispatchEventImpl(Component.java:4889)

at java.awt.Container.dispatchEventImpl(Container.java:2294)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)

at java.awt.Container.dispatchEventImpl(Container.java:2280)

at java.awt.Window.dispatchEventImpl(Window.java:2746)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)

at java.awt.EventQueue.access$500(EventQueue.java:97)

at java.awt.EventQueue$3.run(EventQueue.java:709)

at java.awt.EventQueue$3.run(EventQueue.java:703)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.awt.EventQueue$4.run(EventQueue.java:731)

at java.awt.EventQueue$4.run(EventQueue.java:729)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

3 Respostas

D

Olá

Eu testei seu código e não deu erros como vc disse.

Para passar o conteúdo é simples, basta alterar o construtor na classe NovaEntrada2

exemplo

public NovaEntrada2(String data) {
    /* ... */
    txtData = new JTextField(data);

e no botao no NovaEntrada:

else
    {
    new NovaEntrada2(txtData.getText());
    }
W

obrigado! não fiz exatamente como você fez, mas consegui resolver o problema aqui.

M

Willian_Diniz, geralmente quando preciso passar dados entre jframes costumo utilizar a seguinte solução:

Por exemplo: você quer passar as informações de um Jframe A para um Jframe B, aí no Jframe B eu crio um método público e estático que recebe Strings ou um vetor de Strings (com as informações que desejo) e que, logicamente, seta a propriedade Text dos jtextfields. Depois basta chamar esse método qualquer outra tela.

Criado 6 de maio de 2016
Ultima resposta 15 de mai. de 2016
Respostas 3
Participantes 3