elenano2 escribió:De esa forma ya sabía hacerla, preguntaba por si era posible hacerla en varias lineas y no seguido todo por que me parece menos legible.
Gracias igualmente
System.out.println(
"primera línea\n" +
"segunda línea\n" +
"tercera línea"
);
String[] menu = new String[]{
"primera línea",
"segunda línea",
"tercera línea"
};
for (String line:menu){
System.out.println(line);
}
elenano2 escribió:Alguno sabe si java tiene algún método predefinido para saber si si en un string están metiendo números? Es para cuando preguntas el nombre que no introduzcan números y los de por buenos.
daniel_5 escribió:Y si quieres tener ejemplos de exxpresiones regulares....
http://docs.oracle.com/javase/6/docs/ap ... ttern.html
Acostumbraros a la API de java, si quieres un método de un string esos están en la clase string si no está toca implementarlo.
Usad la API de vuestra versión
wanxu escribió:Buenas, estoy haciendo una refactorización de un código bastante grande y quería saber si tenéis idea de si existe alguna forma de buscar qué métodos públicos hay en las clases que solo se llaman desde ellas mismas, para convertirlos a privados, o hacerlo automáticamente. He mirado plugins de eclipse pero no encuentro nada.
Gracias!
daniel_5 escribió:Desde eclipse puedes ver que métodos son referenciados en cada clase, asi que puedes ver si un método no se referencia desde otras clases.
menu.remove(menu.panel); //eliminamos el panel del JFrame
menu.setPerson(true); // Esto no nos interesa es un boolenano no interfiere en mi problema
menu.altaVehiculo(); //si los datos está¡n todos cumplimentados y el usuario no existe en la lista sacamos el menu vehiculo para un cliente nuevo
menu.setVisible(true); //esto lo hago para activar la barra de menu que desactivo al mostrar este panel
menu.remove(menu.panel); //eliminamos el panel y volemos al menu
menu.setPerson(false); //booleano que no nos afecta
menu.actOpciones(); //activamos las opciones de la barra-menu
menu.setVisible(true); //hacemos visible los cambios en el JFrame
while (cliente.numerocompletocuenta.length() != 20) {
System.out.println("Introduce correctamente la cuenta");
cliente.numerocompletocuenta = teclado.nextLine();
}
try{
Double.parseDouble(cliente.numerocompletocuenta);
}catch(NumberFormatException formatException){
System.out.println("Introduce de nuevo los datos sin letras en la cuenta bancária");
aplicacioncuentabancaria.AplicacionCuentaBancaria.main(null);
}
elenano2 escribió:Pero ahora estoy justo con lo contrario, es decir, que no metan números en un string...pero no se me ocurre como hacerlo. O si, pero de una forma muy dificil.....alguna idea que me podáis dar?
elenano2 escribió:Hola Compañeros, de nuevo por aqui con mis dudas un tanto estupidas, creo que el trabajo me come demasiado la cabeza y luego no me centro...
Se me ha ocurrido hacer la comprobación del nº de cuenta de la siguiente manera: (Simplemente sirve para que no metan letras)while (cliente.numerocompletocuenta.length() != 20) {
System.out.println("Introduce correctamente la cuenta");
cliente.numerocompletocuenta = teclado.nextLine();
}
try{
Double.parseDouble(cliente.numerocompletocuenta);
}catch(NumberFormatException formatException){
System.out.println("Introduce de nuevo los datos sin letras en la cuenta bancária");
aplicacioncuentabancaria.AplicacionCuentaBancaria.main(null);
}
Pero ahora estoy justo con lo contrario, es decir, que no metan números en un string...pero no se me ocurre como hacerlo. O si, pero de una forma muy dificil.....alguna idea que me podáis dar?
Gracias de antemano
if ( cliente.nombre.contains("0") || cliente.nombre.contains("1")|| cliente.nombre.contains("3")|| cliente.nombre.contains("4")){
System.out.println("Introduce el nombre correctamente porfavor (Minimo 10 letras y máximo 30, sin digitos)");
aplicacioncuentabancaria.AplicacionCuentaBancaria.main(null);
}
String cad = new String();
cad = "acvb3";
System.out.println(cad.matches(".*\\d.*"));
elenano2 escribió:Bueno, ya he encontrado una forma, mi formaXD de saber si contiene números un string. Simplemente miro si contiene los números y le saco por pantalla el error y le hago reintroducir el nombre
if ( cliente.nombre.contains("0") || cliente.nombre.contains("1")|| cliente.nombre.contains("3")|| cliente.nombre.contains("4")){
System.out.println("Introduce el nombre correctamente porfavor (Minimo 10 letras y máximo 30, sin digitos)");
aplicacioncuentabancaria.AplicacionCuentaBancaria.main(null);
}
Un saludo y si os sirve a vosotros, pues mejor que mejor. Es lo mas simple que he encontrado
boolean bien = false;
while (!bien) {
try {
System.out.print("Introduce el númer de cuenta 20 dígitos seguidos: ");
teclado = nextInt();
bien = true;
} catch (Exception e) {
System.out.println("Código de cuenta incorrecto, han de ser 20 dígitos seguidos");
teclado.next();
}
}
public void vehiculosLista(ArrayList<Wrapper> lista) {
JPanel panel = new JPanel();
Vehiculo datosVehiculo;
Iterator<Wrapper> it = lista.iterator();
String[] columNames = {"MATRICULA", "MODELO", "MARCA", "CILINDRADA", "COLOR"};
frame = new JFrame();
frame.setTitle("VEHÍCULOS ENCONTRADOS: ");
frame.setSize(450, 800);
frame.setResizable(false);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation(d.width/2-800/2,d.height/2-600/2);
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
DefaultTableModel dtm = new DefaultTableModel(null, columNames);
JTable table = new JTable(dtm);
TableRowSorter<TableModel> tablaOrdenada = new TableRowSorter<TableModel>(dtm);
table.setRowSorter(tablaOrdenada);
dtm.setColumnIdentifiers(columNames);
while (it.hasNext()) {
datosVehiculo = (Vehiculo) it.next().getObj();
Object[] newRow = {datosVehiculo.getMatricula(), datosVehiculo.getModelo(), datosVehiculo.getMarca(), datosVehiculo.getCilindrada(), datosVehiculo.getColor()};
dtm.addRow(newRow);
}
table.setEnabled(false);
table.setAlignmentX(CENTER_ALIGNMENT);
panel.add(table);
boton1 = new JButton("Salir");
boton1.setIcon(new ImageIcon(getClass().getResource("/Imagenes/salir.png")));
boton1.setMnemonic('s');
boton1.setActionCommand("cancelar");
boton1.addActionListener(listener);
frame.add(panel);
frame.add(boton1);
frame.setVisible(true);
}
Bozo escribió:Hola a todos. Ando un poco desconectado de las últimas tecnologías Java y quería que me aconsejarais con una cuestión. Tengo un servidor sockets Java y me han pedido que lo transforme en un WebService. He estado mirando Axis2 de Apache (http://axis.apache.org/axis2/java/core/) y creo que me podría valer. ¿Consideráis que es una buena opción?¿Se os ocurre alguna alternativa mejor? Busco algo lo más portable posible, que se utilice en proyectos serios, que sea gratuito para usos comerciales y que tenga un buen soporte, dado que es para un tema de trabajo.
Gracias de antemano.
public interface MetricInterface {
public ParetoFront getKnownPF();
public void setKnownPF(ParetoFront KnownPF);
public void run();
public void run(ParetoFront KnownPF);
}
public abstract class ComparisonMetric {
private ParetoFront KnownPF = new ParetoFront();
public abstract void run();
public void run(ParetoFront KnownPF){
this.setKnownPF(KnownPF);
this.run();
}
/**
* @return the KnownPF
*/
public ParetoFront getKnownPF() {
return KnownPF;
}
/**
* @param KnownPF the KnownPF to set
*/
public void setKnownPF(ParetoFront KnownPF) {
this.KnownPF = KnownPF;
}
}
public abstract class NoReferenceMetric extends ComparisonMetric{
}
public abstract class ReferenceMetric extends ComparisonMetric {
protected ParetoFront ReferencePF = new ParetoFront();
/**
* @return the ReferencePF
*/
public ParetoFront getReferencePF() {
return this.ReferencePF;
}
/**
* @param ReferencePF the ReferencePF to set
*/
public void setReferencePF(ParetoFront ReferencePF) {
this.ReferencePF = ReferencePF;
}
}
public class ONVG extends NoReferenceMetric implements MetricInterface{
public void run() {
System.out.println("hecho");
}
}
MetricInterface metric = new ONVG();
metric.run();
public class ONVG2 extends ReferenceMetric implements MetricInterface{
public void run() {
System.out.println("hecho");
}
}
MetricInterface metric = new ONVG2();
metric.run();
ReferenceMetric metric = new ONVG();
metric.run();
ObjGenerico obj = ONVG();
obj.setKnownPF(pf);
obj.run();
obj = ONVG2();
obj.setReferencePF(pf);
obj.run();
[Se trata de hacer una aplicación en Java que gestione los clientes de una empresa. Esos datos, se almacenarán en un fichero serializado, denominado clientes.dat.
Los datos que se almacenarán sobre cada cliente son:
NIF.
Nombre.
Teléfono.
Dirección.
Deuda.
Mediante un menú se podrán realizar determinadas operaciones:
Añadir cliente. Esta opción pedirá los datos del cliente y añadirá el registro correspondiente en el fichero.
Listar clientes. Recorrerá el fichero mostrando los clientes almacenados en el mismo.
Buscar clientes. Pedirá al usuario el nif del cliente a buscar, y comprobará si existe en el fichero.
Borrar cliente. Pedirá al usuario el nif del cliente a borrar, y si existe, lo borrará del fichero.
Borrar fichero de clientes completamente. Elimina del disco el fichero clientes.dat
Salir de la aplicación.
ByteArrayOutputStream bs= new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream (bs);
os.writeObject(unObjetoSerializable); // this es de tipo DatoUdp
os.close();
byte[] bytes = bs.toByteArray(); // devuelve byte[]
ByteArrayInputStream bs= new ByteArrayInputStream(bytes); // bytes es el byte[]
ObjectInputStream is = new ObjectInputStream(bs);
ClaseSerializable unObjetoSerializable = (ClaseSerializable)is.readObject();
is.close();
elenano2 escribió:Muchas gracias guantanamera por responder, mañana retomo la practica otra vez y te digo si me sirve .
Le formule una pregunta al profesor pero aun no me ha respondido, te la pongo a ti a ver si te parece que lo que "he entendido" es lo viable.
Como tengo que escribir en un archivo y después serializarlo como tu me has puesto, entiendo que puedo pedir todos los datos seguidos(nombre,nif,etc) y una vez obtenido todos los datos guardarlos en un archivo. Después de guardarlos, ese archivo serializarlo y ya estarían todos los datos guardados.
O en su defecto, cada vez que pida una variable tengo que ir grabándola en el archivo?
Un saludo y muchísimas gracias por la ayuda
darzia escribió:Buenas,
He estado aprendiendo Java por mi cuenta y ahora me gustaría meterle mano a JSP pero no encuentro ningún manual más o menos decente.
¿Podéis recomendarme alguno?
Un saludo y gracias.
Rossyafk escribió:Head First Servlets and JSP de O'Really http://goo.gl/WEoup
Justo estos días me estoy preparando la certificación pertinente y este libro es ideal, tanto para aprender como para certificarte.
Saludos,
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface tecnico.ITecnico, but class was expected
Ritcher escribió:Buenas!! Tengo un problema en mi código que no tengo la menor idea de que puede ser. El error que me salta en eclipse es:Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface tecnico.ITecnico, but class was expected
Se que sin ver el código ni saber que estoy haciendo puede ser un poco tosca la pregunta pero, ¿sabéis por qué motivo suele saltar ese tipo de error? No encuentro la solución por ningún lado.
Un saludo y gracias
bjectInputStream ois = new ObjectInputStream(new FileInputStream("clientes.dat"));
//Recorremos el fichero entero y comparamos el nif con el nif de los objetos que va recuperando
ArrayList<ObjCliente> listaObjetos = new ArrayList<ObjCliente>();
ObjCliente clientere;
try {
do {
clientere = (ObjCliente) ois.readObject();
if ((clientere.getNif().equals(nifpedido))) {
System.out.println("ha llegado");
//Aqui es donde encuentra el cliente con el mismo nif, y donde no se como "pasar de el"
}else{
listaObjetos.add(clientere);
}
} while (clientere != null);
} catch (EOFException e) {
} catch (FileNotFoundException exception) {
}
// Se pasan los datos del ArrayList al archivo
for (ObjCliente tmpcliente : listaObjetos) {
if (contador == 0) {
try {
Main.fichero.delete();
System.out.println("El fichero fue eliminado");
} catch (Exception e) {
e.getCause();
}
clientere = tmpcliente;
ReescribirFichero();
contador = 2;
} else {
clientere = tmpcliente;
ReescribirFichero();
}
}
while (ois.readObject()!= null);