elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11
1  Programación / Java / Re: Netbeans me lanza un error cuando ejecuto interfaces gráficas en: 13 Diciembre 2015, 02:31 am
pues no se nunca me ha pasado, si creas un nuevo proyecto y agregas un JFrame dando click derecho en algun paquete y una vez creado das click derecho al icono del frame y despues "Run file" tampoco funciona?

Instalaste JDK 8u65 with NetBeans 8.1  :huh: o solo el IDE del sitio de netbeans?
2  Programación / Java / Re: ¿como puedo hacer esto? en: 13 Diciembre 2015, 02:27 am
Hola, utiliza las etiquetas de código para que sea mas legible. Esto es lo que quieres hacer?
Código
  1. public class Borrador {
  2.    /**
  3.      * @param args the command line arguments
  4.      */
  5.    public static void main(String[] args) {
  6.        Archivo f = new Archivo();
  7.        f.imprimir(f.vector());
  8.    }
  9.  
  10. }

Código
  1. public class Archivo {
  2.    public int [] vector(){
  3.        int vector [] = {1,2,3,4};
  4.        return vector;
  5. }
  6.  
  7.    public void imprimir(int[] vector){
  8.        for(int i=0; i<vector.length;i++){
  9.            System.out.println(vector[i]);
  10.        }
  11.  
  12.    }
  13. }
  14.  
por qué no usas el constructor de la clase?, tambien se me ocurre que uses toString() para imprimir los datos.
3  Programación / Java / Re: @Override en: 10 Diciembre 2015, 07:15 am
Hace poco nos pidieron sobreescribir el metodo equals para comparar dos objetos y tenias que escribir eso antes del metodo para "personalizar" la comparación.

mira esto:
The equals() Method example in Java
How to Override Equals, HashCode and CompareTo method in Java
4  Programación / Java / NullPointerException al abrir ventana en: 6 Diciembre 2015, 04:23 am
Hola, buen día.

He buscado un poco acerca del error y todo apunta a que en alguna parte del código deberia haber un objeto pero se encuentra con un null y la aplicación truena.

La aplicación es muy sencilla y se pueden agregar autores a una base de datos en Derby, hay un boton que abre una ventana para dar de alta un Folder, y cada folder tiene asociado un Autor. Para poder dar de alta un Folder es necesario escribir el nombre del folder y despues el usuario da click en un boton que dice buscar, el boton debería abrir una ventana donde despliega la lista de autores que previamente hemos agregado, entonces se selecciona uno y se puede dar de alta un Folder.

El problema es que al dar click en buscar autor la aplicación falla y aparece el siguiente mensaje:
Código:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at mx.uam.ayd.negocio.ControlAgregarFolder.buscarAutor(ControlAgregarFolder.java:31)
at mx.uam.ayd.presentacion.VentanaAltaFolder$1.actionPerformed(VentanaAltaFolder.java:114)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Anteriormente teniamos la misma aplicacion pero las clases se llamaban Libros, solamente ajustamos los nombre y quitamos un campo que no necesitamos y al correr la aplicación esta fallando. El flujo es mas o menos el siguiente:

EL boton que dispara la accion para desplegarla ventana con autores es el siguiente:
Código
  1. /**
  2. * This method initializes jButtonBuscarAutor
  3. *
  4. * @return javax.swing.JButton
  5. */
  6. private JButton getJButtonBuscarAutor() {
  7.    if (jButtonBuscarAutor == null) {
  8.        jButtonBuscarAutor = new JButton();
  9.        jButtonBuscarAutor.setBounds(new Rectangle(347, 120, 86, 40));
  10.        jButtonBuscarAutor.setText("Buscar");
  11.        jButtonBuscarAutor.addActionListener(new java.awt.event.ActionListener() {
  12.            public void actionPerformed(java.awt.event.ActionEvent e) {
  13.                autor = control.buscarAutor();
  14.                if(autor != null) {
  15.                jLabelNombreAutor.setText(autor.toString()); //Muestra el nombre del autor actualmente seleccionado
  16.                }
  17.            }
  18.        });
  19.    }
  20.    return jButtonBuscarAutor;
  21. }

Y la clase control tiene el siguiente código:
Código
  1. public class ControlAgregarFolder {
  2. private DAOFolder DAOFolders;//libreria
  3. private DAOAutor DAOautores;
  4. private VentanaAltaFolder VentanaFolder;
  5.  
  6. public ControlAgregarFolder(DAOFolder DAOFolders, DAOAutor autores) {
  7.    this.DAOFolders = DAOFolders;
  8.    this.DAOautores = autores;
  9. }
  10.  
  11. public void inicia() {
  12.    VentanaFolder = new VentanaAltaFolder(this);
  13.    VentanaFolder.setVisible(true);
  14. }
  15.  
  16. public Autor buscarAutor() {
  17. //En la siguiente linea el programa esta fallando, cuando ejecuta DAOautores.dameAutores()
  18.    Autor arregloAutores[] = DAOautores.dameAutores(); // Obtiene lista de autores
  19.    DialogoSeleccionAutor dialogo = new DialogoSeleccionAutor(new JFrame(),arregloAutores);
  20. // Crea el dialogo con la lista de autores
  21.    dialogo.setVisible(true); // Muestra el dialogo
  22.    return dialogo.getAutorSeleccionado(); // Regresa el autor seleccionado en el dialogo
  23. }
  24.  
  25. public void agregarFolder(String nombre, Autor autor, String ruta) {
  26.    DAOFolders.agregaFolder(new Folder(nombre,autor,ruta));
  27. }
  28. }

Y donde se supone que esta fallando es en la linea que hace referencia al DAOAutor cuyo codigo es:
Código
  1. public Autor[] dameAutores() {
  2. ArrayList <Autor> autoresTemp = new ArrayList <Autor>();
  3. try {
  4. // Crea el statement
  5. Statement statement = ManejadorBD.dameConnection().createStatement();
  6. // Recibe los resutados
  7. ResultSet rs = statement.executeQuery("SELECT * FROM Autores");
  8. while(rs.next())
  9. {
  10. // Crea una nueva instancia del objeto
  11. Autor autor = new Autor(rs.getString("nombre"),rs.getString("apellido"));
  12. autoresTemp.add(autor);
  13. }
  14. Autor autoresTempArreglo[]=new Autor[autoresTemp.size()];
  15. autoresTemp.toArray(autoresTempArreglo);
  16. return autoresTempArreglo;
  17. } catch (SQLException e) {
  18. // TODO Auto-generated catch block
  19. e.printStackTrace();
  20. return null;
  21. }
  22. }

edito: conseguimos resolver el problema comenzando desde cero, no supe porque daba el error.  En los DAO algunos métodos regresaban null si fallaba algo en la conexion o las sentencias de SQL, imaginé que por ahi estaba el problema.

Saludos
5  Programación / Programación C/C++ / Re: ¿Vuestro mejor libro de C? en: 21 Junio 2015, 00:38 am
Para C hay libros viejos buenisimos.
Primero el libro K&R
Luego: Certified Course in C: Earn Your Certificate Through Self-Paced

y mas reciente C/C++ de Deitel!!!

Los libros de Herbert Schildt tambien son buenos, vete a alguna biblioteca y busca material antiguo.
6  Programación / Programación C/C++ / Re: [Recomendación] ¿Qué IDE utilizar? en: 21 Junio 2015, 00:31 am
Prueba Netbeans, lo estamos utilizando para programar en Java y la verdad me gustó más que Code Blocks, aunque para escribir solo código con gedit me va.
7  Sistemas Operativos / GNU/Linux / Ayuda al instalar SPICE Opus en: 21 Junio 2015, 00:28 am
Hola, quiero instalar SPICE Opus en ubuntu y en el sitio oficial dice cómo hacerlo, he seguido los pasos pero estoy atorado en la ultima parte que dice así:

Citar
Setting up the environment
We shall assume that you are using BASH. Add the following two lines to /etc/profile
(you must be root in order to be able to do it).
OPUSHOME=INSTALL_PREFIX
export OPUSHOME
where INSTALL_PREFIX is the tree where you installed Spice Opus.
It is also convenient if you add INSTALL_PREFIX/bin to your path.
Add the following two lines at the end of /etc/profile
PATH=$PATH:$OPUSHOME/bin
export PATH
Log out and log in again for the changes to take effect.

No tengo idea de como hacer eso, como tal no tengo el directorio etc/profile mas bien dice etc/profile.d y en la carpeta hay dos archivos bash_completion.sh, vte.sh, esas dos lineas que indica el tutorial no se donde agregarlas.

En usr/local me aparecen las carpetas bin, lib, src donde hay archivos de SPICE que instaló previamente pero en la parte final no se que hacer.

Alguien me podria ayudar?
8  Programación / Programación General / Re: ¿que lenguaje elegir? en: 9 Junio 2015, 05:07 am
C++ no es difícil, C++ es mucho más fácil que C y muchísimo más fácil que ASM. Para escritorio tienes por ejemplo Qt (no me gusta pero es fácil usarlo)

Quería preguntar y porque nadie dice C++?. Soy fan de C y además es el primero en la lista, eso me sorprende. En orientado a objetos me estan enseñando java. Si tambien vas desde cero yo digo C, del resto se muy poco. La transición C-java no es dificil porqué algunas cosas se parecen.

No deberias arrepentirte por aprender algun lenguaje, al final todo sirve.

Por cierto alguien sabe algo del nuevo lenguaje de mac Swift, lei que es mucho mas facil de aprender que Objective-C.

9  Programación / Java / Re: Programa no entra a ciclo for en: 7 Junio 2015, 08:41 am
Sí! encontré la respuesta en Naughton Patrick (1996), The Java Handbook, pág 154

El error esta en que las funciones equals y equalsIgnoreCase regresan true si el parametro tiene los mismos caracteres que el objeto al que llama el método. Hay un ejemplo clave que explica la igualdad == y el método equals():

Código
  1. class EqualsIsNotEqualTo {
  2.    public static void main(String args[]) {
  3.    String s1 = "Hello";
  4.    String s2 = new String(s1);
  5.    System.out.println(s1 + " equals " + s2 + " > " + s1.equals(s2));
  6.    System.out.println(s1 + " == " + s2 + " > " + (s1 == s2) );
  7.    }
  8. }
  9.  
Como los dos strings representan dos objetos distintos la referencia de las variables no son las mismas y por lo tanto la igualdad == regresa falso

El método EqualsIgnoreCase es mucho mejor para este caso.

Código
  1. do {
  2.                error = false;
  3.                carros[i].setMatricula(scanStr.nextLine());              
  4.                for(j=0; j<i; j++) {
  5.                    if( error = carros[i].getMatricula().equalsIgnoreCase( carros[j].getMatricula() )  ) {
  6.                        j = i;
  7.                        System.out.print("Lo sentimos esa matricula ya esta registrada intenta de nuevo: ");
  8.                    }
  9.                }
  10.            } while(error);
10  Programación / Java / Re: Manuales Android Studio en: 7 Junio 2015, 07:22 am
Busca en amazon, yo no he visto en la biblioteca libros de android.

Por qué no empiezas por la información que ofrece el sitio oficial?, estos 3 sitios me parecen apropiados para empezar. Me da curiosidad el mundo de android
1
2
3

de hecho estoy viendo que en developer.android.com hay ejemplos y videocurso, esta genial para empezar.
Páginas: [1] 2 3 4 5 6 7 8 9 10 11
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines