GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Alguem descobrir um error meu no codigo

package Recibo;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.JOptionPane;

public class Recibo extends JFrame {
  
  private JPanel GeralNome;
  private JPanel GeralValor;
  private JLabel LabelNome;
  private JLabel LabelValor;
  private JTextField EditNome;
  private JTextField EditValor;
  private JButton bt_enviar;
  
  public Recibo() {
    gerarRecibo();
  }
  
  public void gerarRecibo() {
    setTitle("Recibo ");
    setLayout( new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
    
    GeralNome = new JPanel();
    GeralNome.setLayout(new GridLayout(1, 0));
    
    GeralValor = new JPanel();
    GeralValor.setLayout(new GridLayout(1,0));
    
    EditValor = new  JTextField(15);
    LabelNome = new JLabel("Nome: ");
    LabelValor = new JLabel("Valor: ");
    EditNome = new JTextField(15);
    bt_enviar = new JButton("Gerar Recibo ");
    
    bt_enviar.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        try {
          File newTextFile = new File("data.txt");
          FileWriter data = new FileWriter(newTextFile,true);
          BufferedWriter p = new BufferedWriter(data);
          p.write(EditNome.getText());
          p.write(EditValor.getText());
          p.close();
          JOptionPane.showMessageDialog(null, "Recibo gerado com sucesso ");
        } catch (IOException iox) {
          EditNome.setText("");
          EditValor.setText("");
          JOptionPane.showMessageDialog(null, "Recibo faliu");
        }
      }
    });
    
    add(GeralNome);
    add(GeralValor);
    GeralNome.add(LabelNome);
    GeralNome.add(EditNome);
    add(bt_enviar);
    GeralValor.add(LabelValor);
    GeralValor.add(EditValor);
    
    pack();
    setLocationRelativeTo(null);
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    setVisible(true);
  }
  
  public static void main(String[] args) throws Exception {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
      e.printStackTrace();
    }
    
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        new Recibo();
      }
    });
  }
}

Erro não vi nenhum, mas há algumas más práticas no seu código:

  • Sua classe se chama Recibo mas ela não representa um recibo, ela é uma janela usada pra emitir um recibo;
  • Nomes de variáveis deveriam ser com letra minúscula;
  • O método gerarRecibo() não gera um recibo, ele inicializa as variáveis e monta o layout da tela;
  • O construtor está fazendo o setVisible(true) da janela, a responsabilidade dele deveria ser de somente inicializar o objeto da classe.

sim bem avisado sobre uso de boas praticas mas ele não ler informações e não exportar arquivo com as informações, a principio função dele gerar um recibo em formato de pdf ou txt, sem uso do sql.

Você não implementou nenhum código pra ler o arquivo, só pra escrever.

Ele exporta sim, ele cria um arquivo data.txt no mesmo diretório em que seu programa é executado.

humm bem fiz configurações referente manipular arquivo meio complicado, por exemplo eu quero colocar imagem nele também, assim gerar recibo eu consiga fazer tudo ate imprimir.

Arquivos .txt não comportam imagens, então vai ter que pensar em outro formato.

Não tente resolver tudo de uma só vez.

//