Hola.
Tu error está en el constructor.
Cuando inicias el JTextArea txtS que tienes declarado como atributo, por error en realidad estás declarando un JTextArea nuevo.
Tienen el mismo nombre, pero son distintos.
JTextArea txtS = new JTextArea();
txtS.setBackground(Color.WHITE);
scrollPane.setViewportView(txtS);
Entonces, cuando pulsas el botón, el método intenta agregar texto al "verdadero" txtS, al declarado como atributo de clase. Pero como no se ha llegado a iniciar, porque por error has inicializado otro distinto, te da error de
NullPointerException, que viene a significar que el "verdadero" txtS está en estado
null, porque no se ha inicializado.
Basta con quitar el nombre de clase JTextArea en el constructor, para que ahora sí se inicialice el "verdadero" txtS.
txtS = new JTextArea();
txtS.setBackground(Color.WHITE);
scrollPane.setViewportView(txtS);
A veces, para evitar estos fallos tontos pero que luego puede costar mucho descubrirlos, puede venir bien usar la palabra reservada
this para asegurarte de que estás inicializando el atributo de tu clase principal, y no "otra cosa" por error.
this.txtS = new JTextArea();
txtS.setBackground(Color.WHITE);
scrollPane.setViewportView(txtS);
Sobre optimizar...
Bueno, en principio no necesitas tres métodos para redondear.
Te bastaría con uno, al que llamarías tres veces pasándole una nota distintas cada vez.
Pero es que de todos modos esos métodos lo que hacen es retornar el resultado que proporciona un método de la clase
Math, así que en realidad directamente puedes llamarle a él sin necesitar de crear un método intermedio.
Lo mismo con las lecturas de los campos de texto.
Así ahorras líneas de código innecesarias:
public class Catorce extends JDialog {
/**
*
*/
private static final long serialVersionUID = 2409303291509567329L;
private JTextField textField_Nota1;
private JTextField textField_Nota2;
private JTextField textField_Nota3;
private JTextArea txtS;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Catorce dialog = new Catorce();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public Catorce() {
getContentPane().setFont(new Font("Tahoma", Font.PLAIN, 14));
setTitle("Reportes");
setBounds(100, 100, 450, 300);
getContentPane().setLayout(null);
JLabel lblNota_1 = new JLabel("Nota 1");
lblNota_1.setFont(new Font("Tahoma", Font.PLAIN, 13));
lblNota_1.setBounds(10, 11, 46, 14);
getContentPane().add(lblNota_1);
JLabel lblNota_2 = new JLabel("Nota 2");
lblNota_2.setFont(new Font("Tahoma", Font.PLAIN, 13));
lblNota_2.setBounds(10, 36, 46, 14);
getContentPane().add(lblNota_2);
JLabel lblNota_3 = new JLabel("Nota 3");
lblNota_3.setFont(new Font("Tahoma", Font.PLAIN, 13));
lblNota_3.setBounds(10, 61, 46, 14);
getContentPane().add(lblNota_3);
textField_Nota1 = new JTextField();
textField_Nota1.setBounds(83, 9, 86, 20);
getContentPane().add(textField_Nota1);
textField_Nota1.setColumns(10);
textField_Nota2 = new JTextField();
textField_Nota2.setBounds(83, 34, 86, 20);
getContentPane().add(textField_Nota2);
textField_Nota2.setColumns(10);
textField_Nota3 = new JTextField();
textField_Nota3.setBounds(83, 59, 86, 20);
getContentPane().add(textField_Nota3);
textField_Nota3.setColumns(10);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 92, 414, 158);
getContentPane().add(scrollPane);
this.txtS = new JTextArea();
txtS.setBackground(Color.WHITE);
scrollPane.setViewportView(txtS);
JButton btnProcesar = new JButton("Procesar");
btnProcesar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
double nota1 = 0, nota2 = 0, nota3=0;
long rpt1 = 0, rpt2 = 0, rpt3 = 0 ;
int suma;
nota1 = Double.parseDouble(textField_Nota1.getText());
nota2 = Double.parseDouble(textField_Nota2.getText());
nota3 = Double.parseDouble(textField_Nota3.getText());
rpt1 = Math.round(nota1);
rpt2 = Math.round(nota2);
rpt3 = Math.round(nota3);
suma = Suma( rpt1, rpt2, rpt3);
mostrarResultado(rpt1, rpt2, rpt3, suma);
}
});
btnProcesar.setBounds(322, 8, 89, 23);
getContentPane().add(btnProcesar);
}
private int Suma(long rpt1, long rpt2, long rpt3){
//Se añade int para transformar de long a int
return (int)((rpt1 + rpt2 + rpt3)/3);
}
private void mostrarResultado(long rpt1, long rpt2, long rpt3, int suma){
txtS.setText("Reporte\n");
txtS.append("Nota 1 es: " + rpt1 + "\n");
txtS.append("Nota 2 es: " + rpt2 + "\n");
txtS.append("Nota 3 es: " + rpt3 + "\n");
txtS.append("Promedio: " + suma+ "\n");
}
}