Eu criei uma Jframe para preencher o seguintes campos:
Codigo de barras:
Quantidade:
Que no caso funcionaria da seguinte forma, o cliente iria ler o codigo de barra e informar a quantidade (Fazendo assim um loop infinito, que so seria encerrado caso Codigo de barras == 0 e sempre armazenando todos os dados informados) .
O valor informado nesses respectivos campos (gerariam um arquivo texto que seria gravado no disco local (D:)), mas como a JFrame é uma classe privada não esta permitindo salvar este arquivo no disco (D:). Eu comentei a parte que o sistema esta barrando para melhor vizualização.
package view;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.BorderLayout;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class ViewPrimeiraTela {
private JFrame frame;
private JTextField textCodigodeBarras;
private JTextField textQuantidade;
public static void main(String[] args) throws IOException {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ViewPrimeiraTela window = new ViewPrimeiraTela();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public ViewPrimeiraTela(){
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel lblCdigoDeBarras = new JLabel("C\u00F3digo de barras :");
lblCdigoDeBarras.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblCdigoDeBarras.setBounds(10, 11, 200, 50);
frame.getContentPane().add(lblCdigoDeBarras);
textCodigodeBarras = new JTextField();
textCodigodeBarras.setBounds(10, 51, 200, 25);
frame.getContentPane().add(textCodigodeBarras);
textCodigodeBarras.setColumns(10);
String valorQuantidade = textCodigodeBarras.getText();
JLabel lblQuantidade = new JLabel("Quantidade:");
lblQuantidade.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblQuantidade.setBounds(10, 63, 200, 50);
frame.getContentPane().add(lblQuantidade);
textQuantidade = new JTextField();
textQuantidade.setBounds(10, 101, 200, 23);
frame.getContentPane().add(textQuantidade);
textQuantidade.setColumns(10);
String valorCodigodebarras = textQuantidade.getText();
// Esta execução que esta sendo barrada pelo sistema
// FileWriter arq = new FileWriter("d:\\Codigo.txt");
// PrintWriter gravarArq = new PrintWriter(arq);
// long i =1, sair;
// while (i != 0) {
// i = Long.parseLong(valorCodigodebarras);
// if (i == 0){
// arq.close();
// } else {
// gravarArq.println("\n"+valorCodigodebarras+";"+valorQuantidade+ "\n" );
// }
// }
// arq.close();
// JOptionPane.showMessageDialog(null,"\nO arquivo texto Código de barras foi gravado com sucesso em \"d:\\Codigo.txt\".\n");
JButton btnProximo = new JButton("Proximo");
btnProximo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
btnProximo.setBounds(163, 228, 89, 23);
frame.getContentPane().add(btnProximo);
}
}
, está desta forma mas não deu certo.