Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - sapito169

#301
Java / Re: Como puedo Editar mis Propias Excepciones
24 Diciembre 2010, 07:11 AM



Citar

¿como se edito en la Clase esa Exception o Existe un metodo dentro de la Clase que Clasifica los Errores o como funciona???

no Debes editar la clase exception por que podria causar problema es mas esta compilada y es una clase que ya esta siendo usada por otras clases

realmente parece que estas usando las palabras incorrectas
enves de editar Exceptiondeveria ser como creo y manejo mis excepciones personalisdas

para crear una excepcion lo unico que tienes que hacer es heredar de Throwable
o cualquiera de sus hijos nietos o visnietos si no sabes que es heredar primero averigua como se hace

Citar
¿Como sabe que es una Exception y que no es solo el retorno de una variable de un metodo?


:huh: :huh:


creo que lo que tratas de preguntar como se lansa una excepcion personalizada dentro de un metodo

se usa la palabra reservada throw muy usualmente en combinasion de varias verficaciones (usando if)

#302
Java / Re: ArrayList Bidimencionales
20 Diciembre 2010, 01:36 AM
cuando algien trata de atornillar algo usa un destornillador no un martillo  >:(
primero deviste leer para que sirve el array list

estoy harto de java en . net tiene una inplementecacion de tabla muy potente pero nosotros solo tenemos un tablemodel pero en la practica usamos defaultablemodel

Código (java) [Seleccionar]

TableModel model = new DefaultTableModel(2, 2);
model.setValueAt("celda 0:0", 0, 0);
model.setValueAt("celda 1:1", 1, 1);
model.setValueAt("celda 0:1", 0, 1);
model.setValueAt("celda 1:0", 1, 0);

System.out.print(model.getValueAt(1, 1));


ArrayList[][] array = new ArrayList[5][5];
es un arreglo bidimencional pero todos los elementos son ArrayList lo cual es una solucion muy rara por cada ArrayList puede tener varios elementos lu cual es por decirlo menos muy raro te acepta cosas como

Código (java) [Seleccionar]

array[0][0].add("holaa");
array[0][0].add("ultimo");
#303
Java / Re: Integrar java con sql
20 Diciembre 2010, 00:52 AM
el asunto no es raro es muy comun solo que a muchos no le interesa o les da igual
aqui una propuesta de solucion no todos lo hacen igual y muchos tienes diferentes opiniones

fijate en el detalle que si quiero cambiar de base de datos en mememoria por una base de datos real tendrias que reemplasar AccesoADatosEnMemoriaProducto() cualquier clase que implemente AccesoADatosProducto

public class Main {
public static void main(String arg[]) {
AccesoADatosProducto accesoADatosProducto = new AccesoADatosEnMemoriaProducto();
accesoADatosProducto
.agregarProducto(new Producto(1, "computadora", 10));
accesoADatosProducto.agregarProducto(new Producto(2, "telivisor", 20));
accesoADatosProducto.agregarProducto(new Producto(3, "monitor", 30));

for (Producto producto : accesoADatosProducto.listarProducots()) {
System.out.println(producto);
}
}
}





import java.util.List;




[code]
import java.util.List;

public interface AccesoADatosProducto {

public abstract void agregarProducto(Producto Producto);

public abstract void eliminarProducto(int codigo);

public abstract void modificarProducto(int codigo, Producto nuevoProducto);

public abstract Producto obtenProducto(int codigo);

public abstract List<Producto> listarProducots();

}



import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;

public class AccesoADatosEnMemoriaProducto implements AccesoADatosProducto {

private Hashtable<Integer, Producto> productos = new Hashtable<Integer, Producto>();

@Override
public void agregarProducto(Producto producto) {
productos.put(producto.getCodigo(), producto);
}

@Override
public void eliminarProducto(int codigo) {
productos.remove(codigo);
}

@Override
public void modificarProducto(int codigo, Producto nuevoProducto) {
if (productos.containsKey(codigo)) {
throw new RuntimeException("bruto no se puedo ingresar el producto"
+ nuevoProducto
+ "devido a que no existe un producto con el mismo codigo");
}
productos.put(codigo, nuevoProducto);
}

@Override
public Producto obtenProducto(int codigo) {
return productos.get(codigo);
}

@Override
public List<Producto> listarProducots() {
List<Producto> list = new ArrayList<Producto>();
Enumeration<Producto> enumproduct = productos.elements();
while (enumproduct.hasMoreElements()) {
Producto producto = (Producto) enumproduct.nextElement();
list.add(producto);
}
return list;
}

}



public class MySqlAccesoADatosProducto implements AccesoADatosProducto {

@Override
public void agregarProducto(Producto Producto) {

}

@Override
public void eliminarProducto(int codigo) {

}

@Override
public void modificarProducto(int codigo, Producto nuevoProducto) {

}

@Override
public List<Producto> listarProducots() {

return null;
}

@Override
public Producto obtenProducto(int codigo) {

return null;
}

}



public class Producto {
private int codigo;
private String nombre;
private double precio;

public Producto(int codigo, String nombre, double precio) {
this.codigo = codigo;
this.nombre = nombre;
this.precio = precio;

}

public int getCodigo() {
return codigo;
}

public void setCodigo(int codigo) {
this.codigo = codigo;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public double getPrecio() {
return precio;
}

public void setPrecio(double precio) {
this.precio = precio;
}

@Override
public String toString() {

return codigo + " " + nombre + " " + precio;
}

}



felizmente te diste cuenta a tiempo eso se puede hacer de muchas maneras solo es cuestión de jugar con las interfases y clases abstractas las soluciones mas comunes y que se la saben todo el mundo se llaman patrones de diseño

el patron de diseño para para cambiar la fuente de datos por cualquiera se llama dao es usado en combinacion de otros patrones como el factory(algunos les gusta abstracfactory) y el singleton
[/code]
#304
Java / Re: paso por referencia de un integer
17 Diciembre 2010, 06:13 AM
no existe el paso por referensia ni punteros en java ni los necesitamos es mas el mundo es mejor cuando borro los unicos punteros en que existieron java segun las sabias palabras de golsin amen
#305
si un metodo de una clase usa variables pasadas como parametro y no usa ninguna de las globalas te esta gritando que deberia estar en otra clase asi puedes reusar esa funcion en cualquier parte que quieras
#306
la primera letra de una clase no comiensa con mayuscula las clases no comiensan con cls los metodos mcd y mcm no tienen nada que ver deverian estar en otra clase
borra la importacion a scaner mejor crea otra clases para hacer las operaciones de lectura
aparte de eso es buen codigo es realmente extraordinario es decir que es algo que casi nunca pasa encontrar codigo que se entienda y menos a la primera  ;-)  ;-)
#307
Java / Re: array size exceeds
9 Diciembre 2010, 04:58 AM
y por que tienes un array gigante mejor arregla tu aplicacion o en caso de que no haya problema usa cualquier base de datos como dervy
#308
cuando tienes que ponerte especial con una interfase las cosas se empiensa a ponerse bien feas
una solución es crear la interfas con netbeans con el layaut de estilo libre o free form (no me digas que no te sale por que solo es drag and droop) ni se te ocurra ver el codigo autogenerado si no tienes estomago fuerte
otra opción es usar jgodies que es el unico que tienes un layaut decente

1:  FormLayout layout = new FormLayout(
2:    "pref, 4dlu, 50dlu, 4dlu, min",             // columns
3:    "pref, 2dlu, pref, 2dlu, pref");            // rows
4:
5:  layout.setRowGroups(new int[][]{{1, 3, 5}});
6:
7:  JPanel panel = new JPanel(layout);
8:
9:  CellConstraints cc = new CellConstraints();
10:  panel.add(new JLabel("Label1"), cc.xy (1, 1));
11:  panel.add(textField1,         cc.xyw(3, 1, 3));
12:  panel.add(new JLabel("Label2"), cc.xy (1, 3));
13:  panel.add(textField2,         cc.xy (3, 3));
14:  panel.add(new JLabel("Label3"), cc.xy (1, 5));
15:  panel.add(textField3,         cc.xy (3, 5));
16:  panel.add(detailsButton, cc.xy (5, 5));


http://www.jgoodies.com/articles/forms.pdf
http://www.jgoodies.com/freeware/forms/
#309
Java / Re: Equivalente a DataTable de .Net
2 Diciembre 2010, 09:36 AM
existe una libreria para jme que es un copy and paste de swing LWUIT no soy un experto en jme asi que busca como agregar librerias no creo que sea dificil

otra opcion es crearla
no es dificil si la unica funcionalidad es que sea una tabla en memoria y que se pueda recorrer lo que es mucho mas dificil que eso son las clases que trabajan con la tabla que igual tendrias que hacer osea no pierdes la gran cosa solo recuerda ponle una interfas y una clase abstracta arriba  :huh:

otra opcion seria que trabajes con arreglos de 2 dimensiones Object[][]

aveces se piensa en tablas como estas

nombre apellido edad
lucho     morales 23
juan      suares   32

lo cual es inesesario por que mejor trabajas con una lista de personas

List<Persona> personas =new ArrayList();

tienes para escoger te recomiendo que si lo que quieres es aprender create la tabla a mano es mas puedes hacer la tabla como te guste  ;D y darle una funcionalidad tipo lista con los metodos

Boolean siguienteLinea
Object obtenerCellda(String nombre)
#310
Java / Re: Esperar hasta que formulario termine
27 Noviembre 2010, 08:27 AM
-tu formulario tiene que ser una clase que herede de jdialogo que tenga constructor que reciva un frame y un bolean
-tienes que conocer como trabajar con geters y seters


import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;

public class FrmPrincipal extends JFrame {

private static final long serialVersionUID = 1L;
private JButton jButton = new JButton("presioname");
private JTextField jLabel = new JTextField("respuesat");

public FrmPrincipal() {
intialise();
}

public void intialise() {
jLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
jButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
jbuton_actionPerformed(e);
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
getContentPane().add(jLabel);
getContentPane().add(jButton);

pack();
}

public void jbuton_actionPerformed(ActionEvent e) {
FrmProducto frmData = new FrmProducto(this, true);
frmData.setVisible(true);
String respuesta = frmData.getDato();
jLabel.setText(respuesta);
}

public static void main(String arg[]) {
FrmPrincipal frmPrincipal = new FrmPrincipal();
frmPrincipal.setVisible(true);
}
}



import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class FrmProducto extends JDialog {

private static final long serialVersionUID = 1L;
private JTextField jTextField = new JTextField("ingrese aqui el dato");

public FrmProducto(JFrame frame, Boolean modal) {
super(frame, modal);
initialise();
}

public void initialise() {
getContentPane().add(jTextField);
pack();
}

public String getDato() {
return jTextField.getText();
}
}