Hola.
Por lo que indica el error, parece que alguno/s de estos Double.parseDouble() recibe un String vacío, y que por tanto no se puede parsear..
double radio = Double.parseDouble(txtradio.getText());
System.out.println("El radio es" + radio);
double lado = Double.parseDouble(txtlado.getText());
double ladoCubo = Double.parseDouble(txtladoCubo.getText());
double base = Double.parseDouble(txtbase.getText());
double altura = Double.parseDouble(txtaltura.getText());
double radioEsfera = Double.parseDouble(txtRadioEsfera.getText());
double arista = Double.parseDouble(txtarista.getText());
No se como es el resto de tu programa ni tu GUI, así que solo puedo hacer suposiciones.
Y una suposición es que quizá el problema sea que tú coges los datos de TODAS las figuras, pero quizá el usuario en la GUI solo ha seleccionado una figura y es a esta a la que ha puesto unos valores.
Si el resto de figuras no reciben valores en sus campos de texto (tienen String vacío) y tú intentas recoger y parsear esos campos vacíos, pues entonces se produce esa excepción que te sale en pantalla.
Quizás no deberías coger los datos de TODAS las figuras, solo los de la figura seleccionada.
Puesto que en ese mismo código luego preguntas cuál es la figura seleccionada, pues s entonces cuando deberías recoger el dato necesario.
Por ejemplo:
if (rbtCirculo.isSelected()) {
figuras[contador] = new Circulo(Double.parseDouble(txtradio.getText()));
}
if (rbtCuadrado.isSelected()) {
figuras[contador] = new Cuadrado(Double.parseDouble(txtlado.getText()));
}
etc....
Incluso, para mayor seguridad, antes de coger el dato puedes comprobar que realmente tiene un valor introducido y solo entonces intentas el parseo y creación de la figura
if (rbtCirculo.isSelected()) {
if (txtradio.getText().isBlank())
JOptionPane.showMessageDialog(null, "Se necesita valor del radio para crear Circulo");
else
figuras[contador] = new Circulo(Double.parseDouble(txtradio.getText()));
}
if (rbtCuadrado.isSelected()) {
if (txtlado.getText().isBlank())
JOptionPane.showMessageDialog(null, "Se necesita valor del lado para crear Cuadrado");
else
figuras[contador] = new Cuadrado(Double.parseDouble(txtlado.getText()));
}
etc....