Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: IvanTM en 25 de Abril 2019, 01:34
-
Qué tal, estoy empezando a ver el tema de netbeans y estamos con JOption y los recuadros de diálogo. Este es mi programa, casi todo compila bien sale el recuadro excepto el ultimo que me tiene que mostrar los datos que se ingresan y de hecho me sale el siguiente mensaje
reference to format is ambiguous both method format(String,Object...) in String and method format(Locale,String,Object...) in String match
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package estructuradatos;
import javax.swing.JOptionPane;
/**
*
* @author wordl
*/
public class SistemaINE {
public static void main (String[] args, String String) {
int edad, Nocalle, cp;
String nom, apellidopaterno, apellidomaterno, fechanacimiento, nomcalle, municipio, estado;
String n = JOptionPane.showInputDialog ("Ingrese su edad");
edad = Integer.parseInt(n);
if (edad >17) {
String mensaje = String.format("Si puede votar", edad);
JOptionPane.showMessageDialog(null,mensaje);
String a = JOptionPane.showInputDialog ("Ingrese Nombre del ciudadano");
nom=(a);
String b = JOptionPane.showInputDialog ("Ingrese Apellido Paterno");
apellidopaterno= (b);
String c = JOptionPane.showInputDialog ("Ingrese Apellido Materno");
apellidomaterno= (c);
String d = JOptionPane.showInputDialog ("Ingrese su edad");
edad= Integer.parseInt(d);
String e = JOptionPane.showInputDialog ("Ingrese su fecha de nacimiento");
fechanacimiento= (e);
String f = JOptionPane.showInputDialog ("Ingrese el nombre de su calle");
nomcalle= (f);
String g = JOptionPane.showInputDialog ("Ingrese el numero de su vivienda");
Nocalle= Integer.parseInt(g);
String h = JOptionPane.showInputDialog ("Ingrese su codigo postal");
cp= Integer.parseInt(h);
String i = JOptionPane.showInputDialog ("Ingrese el municipio");
municipio= (i);
String j = JOptionPane.showInputDialog ("Ingrese estado al que pertenece");
estado= (j);
String mensaje3 = String.format(null,"Nombre del ciudadano: %s\n Apellido Paterno: %s\n Apellido Materno: %s\n edad: %s\n Fecha de nacimiento: %s\n Nombre de la calle: %s\n Numero de la calle: %s\n Codigo Postal: %s\n Municipio: %s\n Estado: %s\n",nom,apellidopaterno,apellidomaterno,edad,fechanacimiento,nomcalle,Nocalle,cp,municipio,estado);
JOptionPane.showMessageDialog(null,mensaje3);
}
else {
String mensaje2 = String.format("No puede votar");
JOptionPane.showMessageDialog(null,mensaje2);
}
}
}
Gracias
-
Te recomiendo que para publicar en el foro tenes que leas las reglas de publicación.-
https://aprenderaprogramar.com/foros/index.php?topic=1460.0 (https://aprenderaprogramar.com/foros/index.php?topic=1460.0)
-
El error que te sale es porque hay un método ambiguos sobrecargados y el compilador no sabe a que método usar .-
String mensaje3 = String.format(null,"Nombre del ciudadano: %s\n Apellido Paterno: %s\n Apellido Materno: %s\n edad: %s\n Fecha de nacimiento: %s\n Nombre de la calle: %s\n Numero de la calle: %s\n Codigo Postal: %s\n Municipio: %s\n Estado: %s\n",nom,apellidopaterno,apellidomaterno,edad,fechanacimiento,nomcalle,Nocalle,cp,municipio,estado);
El error esta en este codigo ya que le pudiste null al principio que no entiendo bien porque al corregir este el programa ya funciona.-
mensaje = String.format("Nombre del ciudadano: %s\n Apellido Paterno: %s\n Apellido Materno: %s\n edad: %s\n Fecha de nacimiento: %s\n Nombre de la calle: %s\n Numero de la calle: %s\n Codigo Postal: %s\n Municipio: %s\n Estado: %s\n", nom, apellidopaterno, apellidomaterno, edad, fechanacimiento, nomcalle, Nocalle, cp, municipio, estado);
El código quedaría así otra cosa no es necesario declarar variable innecesario ejemplo mensaje, menasaje1, etc ya que el estado de la variable cambia dependiendo de la condición en este caso solo necesita una variable
package sistemaine;
import javax.swing.JOptionPane;
public class SistemaINE {
public static void main(String[] args) {
int edad, Nocalle, cp;
String nom, apellidopaterno, apellidomaterno, fechanacimiento, nomcalle, municipio, estado;
String n = JOptionPane.showInputDialog("Ingrese su edad");
edad = Integer.parseInt(n);
String mensaje = "";
//String men
if (edad > 17) {
mensaje = String.format("Si puede votar", edad);
JOptionPane.showMessageDialog(null, mensaje);
String a = JOptionPane.showInputDialog("Ingrese Nombre del ciudadano");
nom = (a);
String b = JOptionPane.showInputDialog("Ingrese Apellido Paterno");
apellidopaterno = (b);
String c = JOptionPane.showInputDialog("Ingrese Apellido Materno");
apellidomaterno = (c);
String d = JOptionPane.showInputDialog("Ingrese su edad");
edad = Integer.parseInt(d);
String e = JOptionPane.showInputDialog("Ingrese su fecha de nacimiento");
fechanacimiento = (e);
String f = JOptionPane.showInputDialog("Ingrese el nombre de su calle");
nomcalle = (f);
String g = JOptionPane.showInputDialog("Ingrese el numero de su vivienda");
Nocalle = Integer.parseInt(g);
String h = JOptionPane.showInputDialog("Ingrese su codigo postal");
cp = Integer.parseInt(h);
String i = JOptionPane.showInputDialog("Ingrese el municipio");
municipio = (i);
String j = JOptionPane.showInputDialog("Ingrese estado al que pertenece");
estado = (j);
mensaje = String.format("Nombre del ciudadano: %s\n Apellido Paterno: %s\n Apellido Materno: %s\n edad: %s\n Fecha de nacimiento: %s\n Nombre de la calle: %s\n Numero de la calle: %s\n Codigo Postal: %s\n Municipio: %s\n Estado: %s\n", nom, apellidopaterno, apellidomaterno, edad, fechanacimiento, nomcalle, Nocalle, cp, municipio, estado);
JOptionPane.showMessageDialog(null, mensaje);
} else {
mensaje = String.format("No puede votar");
JOptionPane.showMessageDialog(null, mensaje);
}
}
}
Otra observación o como ejercicios seria bueno que valide los campos numérico y fecha para que no inserte valor que no sea valido.-