Google, y colabora con parte de tu código XD para ayudarte ...
según la formula desviación estándar
ver linea 118 a 132 dos maneras de tantas package foro;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.LinkedList;
import java.util.stream.IntStream;
public class MediaDesviacionEstandar
extends JFrame {
private final LinkedList<Double> linkedList = new LinkedList<>();
private static final String TITLE
= "Calcular Media y Desviación Estándar...";
public MediaDesviacionEstandar() {
initFrame();
initBehaviour();
}
private void initFrame() {
scrollPane.
setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS); scrollPane.
setPreferredSize(new Dimension(30,
10)); scrollPane.
setMinimumSize(new Dimension(30,
10));
jPanel.setBorder(border);
panelNort.add(jTextField);
panelNort.add(buttonSum);
panelNort.add(buttonProcesar);
jPanel.add(scrollPane);
jPanel.
setPreferredSize(new Dimension(450,
250));
add(jPanel);
setDefaultCloseOperation
(JFrame.
EXIT_ON_CLOSE); pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void initBehaviour() {
buttonSum.addActionListener( e -> {
jTextField.requestFocus();
try {
linkedList.
add(Double.
valueOf(jTextField.
getText().
replace(",",
"."))); media();
jTextField.setText("");
JOptionPane.
showMessageDialog(this,
"valor incorrecto",
"Error",
0); jTextField.requestFocus();
}
});
buttonProcesar.addActionListener( e -> {
jTextField.requestFocus();
if(linkedList.size() != 0) {
procesar();
}else {
JOptionPane.
showMessageDialog(this,
"lista vacia loco :X",
"Error",
0); }
});
}
private void procesar() {
final StringBuilder sb = new StringBuilder();
final StringBuilder elementos = new StringBuilder();
linkedList.forEach(p -> elementos.append(p + " \\ "));
sb.append("Números procesados: " + elementos +"\n")
.append("La media es: " +media() + "\n")
.append("Desviación estándar método 1: " + desviacionEstandar1()+"\n")
.append("Desviación estándar método 2: " + desviacion2()+"\n")
.append("___________________________________\n");
linkedList.clear();
createJTextPane(sb.toString());
}
private void createJTextPane
(final String text
) { // Se inserta
// Atributos para la frase, en negrita
final Style regular
= doc.
addStyle("regular", def
); try {
jTextPane.getStyledDocument().insertString(jTextPane.getStyledDocument().getLength(), text, doc.getStyle("regular"));
e.printStackTrace();
}
}
private double media() {
return linkedList.stream()
.
mapToDouble(Double::doubleValue
) .average()
}
//con algo de java 8
private double desviacionEstandar1() {
final double sum = IntStream.range(0 , linkedList.size()) // recorremos el array
.
mapToDouble(p
-> Math.
pow(linkedList.
get(p
) - media
() ,
2)) // .sum();
return Math.
sqrt(sum
/ linkedList.
size()); }
//java 7
private double desviacion2() {
double sum = 0;
for ( int f = 0; f < linkedList.size(); f++ )
sum
+= Math.
pow ( linkedList.
get(f
) - media
() ,
2 ); return Math.
sqrt ( sum
/ ( double ) linkedList.
size() ); }
public static void main
(String...
blabla) { try {
if(osType.contains("Win")) {
UIManager.
setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }else if(osType.contains("Linux")) {
UIManager.
setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); }
new MediaDesviacionEstandar();
}).start();
}
}