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

#201
Java / Re: packages
3 Marzo 2012, 01:15 AM
adastra aca el unico troll soy yo  >:( por favor la mayoría no se toma las cosa con la seriedad que se debe acostúmbrate , es lo mismo a donde vallas

la estructura de carpetas debe coincidir con la estructura de paquetes es decir que si tienes una paquete com.elhacker.leeLosConceptosPrevios en la parte de tu clase con el nombre hacker pues tiene que existir una estructura de carpetas asi

com
  elhacker
    leeLosConceptosPrevios
      hacker.java

:¬¬
#202
creas un proyecto nuevo con netbenas luego chancas la carpesta src del proyecto antiguo al proyecto nuevo

agregas las mismas librerias si son nesesarias
#203
Java / Re: JTableUsuario y JTableDisfruta
20 Febrero 2012, 11:45 AM
esta bien pon codigo
:xD
#204
desventajas de la primera

poliformismo vs if esto atrae trolls alguien dijo "java mato a los punteros ahora el poliformismo mata a los if"  >:D ahora es momento de considerar if a modo de switch depreceted

si tu permites if enves de poliformismo se ve facil pero recuerda esos if se reproducen como un virus como si fueran una enfermedad se exparsen como el cancer es decir en el metodo getPrecio pones if luego agregas otro metodo (que necesite saber que tamaño tiene) pues facil copias y pegas la gigantesca lista de if y si denuevo quiero y si luego aparce otro pues facil copias y pegas nuebamente asi asta artarte

i que pasa cuando quieres agregar otro tamaño uuu te fregaste tendrias que buscar todos los if (imaginate que son 50 veces) en todas partes y agregar el nuebo tamaño
recuerda que tendrias que hacerlo a mano y que pasa si cuando copias y pegas creas un bug pues lo copiaste 50 veces

#205
Java / Re: kardex ueps
14 Febrero 2012, 01:37 AM
-si lo unico que quieres es aprender cualquier cosa estaria bien
-si lo quieres hacer con arreglos esta bien si quieres aprender a usar arreglos pero solo guardarias tus datos en memoria cierras el programa todo se pierde
-otra opcion si gustas en con base de datos

recuerda que no se hacen tareas mejor deja tu pregunta concreta del tipo como resuelvo este problema especifico o como se corrige esta excepcion
#206
Java / Re: Menu swing, Como lo hacerlo
13 Febrero 2012, 02:20 AM
porfavor respondeme aunque sea respuesta troll pero no me dejes solo si no me deprimo
#207
Java / Re: Menu swing, Como lo hacerlo
13 Febrero 2012, 02:13 AM
-Si dejaras de pensar en java en función al ide y leyeras absolutamente todo el código que creas todos tus problemas se resolverían mágicamente y nunca más volverías a postear

El método mas fácil (puedo escribir 10 hojas solo de este tema pero nadie lo leería y no me entenderías)

1 debes tener un único formulario con que herede de JFrame a partir de ahora llamado principal

2 el resto de tus ventanas deben heredar de JDialog

4 Dentro el formulario principal creas bariables globales para todos tus formularios globales

3 le pones un jmenuBar en tu formulario principal y cada JmenuIten muestras un formulario auxiliar con este codigo

if (frmPersonal == null) {
frmPersonal = new FrmPersonal(this, true);
}
frmPersonal.setVisible(true);



ejemplo de fromulario principal




package org.springhispano.screancast01;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JToolBar;
import javax.swing.JButton;
import java.awt.FlowLayout;
import javax.swing.AbstractAction;
import java.awt.event.ActionEvent;
import javax.swing.Action;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;

public class FrmPrincipal extends JFrame {

FrmPersonal frmPersonal;

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmPrincipal frame = new FrmPrincipal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

public FrmPrincipal() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);

JMenuBar barPrincipal = new JMenuBar();
setJMenuBar(barPrincipal);

JMenu mnuRecursosHumanos = new JMenu("Recursos Humanos");
barPrincipal.add(mnuRecursosHumanos);

JMenu mnuPersonal = new JMenu("Personal");
mnuRecursosHumanos.add(mnuPersonal);

JMenuItem mnuRegistro = new JMenuItem("registro");
mnuRegistro.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mnuRegistro_actionPerformed(e);
}

});
mnuPersonal.add(mnuRegistro);
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));

JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.EAST);

JPanel panel_2 = new JPanel();
contentPane.add(panel_2, BorderLayout.WEST);

JPanel panel_3 = new JPanel();
contentPane.add(panel_3, BorderLayout.CENTER);

JPanel panel_4 = new JPanel();
contentPane.add(panel_4, BorderLayout.SOUTH);
}

private void mnuRegistro_actionPerformed(ActionEvent e) {
if (frmPersonal == null) {
frmPersonal = new FrmPersonal(this, true);
}
frmPersonal.setVisible(true);
}

}




package org.springhispano.screancast01;

import java.awt.BorderLayout;

public class FrmPersonal extends JDialog {

private final JPanel contentPanel = new JPanel();

/**
* Launch the application.
*/
public static void main(String[] args) {
try {
FrmPersonal dialog = new FrmPersonal(null,false);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* Create the dialog.
*/
public FrmPersonal(Frame owner, boolean modal) {
super(owner, modal);
setTitle("Personal");
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setLayout(new FlowLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
}

}


#208
la única forma de hacerlo es que compruebes la hora en un servidor por red y manejar los permisos de seguridad en el servidor
#209
Java / como crear formularios
11 Diciembre 2011, 03:20 AM
Esta vez voy hablar con evidencias
Veamos como un desarrollador normal creando un formulario


Código (java) [Seleccionar]


package com.ejemplo;

public class PanFeoContacto extends javax.swing.JPanel {

    public PanFeoContacto() {
        initComponents();
    }

   
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jTextField3 = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jSpinner1 = new javax.swing.JSpinner();

        jLabel1.setText("Nombre");

        jLabel2.setText("Apellido");

        jLabel3.setText("Direcion");

        jLabel4.setText("Edad");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 460, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 460, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel3)
                            .addComponent(jLabel4))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jSpinner1, javax.swing.GroupLayout.DEFAULT_SIZE, 459, Short.MAX_VALUE)
                            .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 459, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(191, Short.MAX_VALUE))
        );
    }// </editor-fold>                       


    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JSpinner jSpinner1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    // End of variables declaration                   

}



todo el código es incomprensible inmantenible difícil de entender de modificar es mas el ide no te permite editar casi la totalidad de código
es mas para modificarlo tienes que usar una serie de pasos en el ide eso de precodigo postcodigo solo funciona con netbeans y require un horrible xml de ayuda que te lo crea el ide solo funciono en netbeans
estorba si usas eclipse y esto solo es un ejemplo trivial la realidad es que me vi en la desgracia de usar formulario 10 veces más complicados con 10 veces de código con más de 50 componentes con paneles dentro de otro y con diferentes layauts y enzima al estilo wizard para que quepa en la pantalla casi me dieron ganas de renunciar al ver que cada vez que modifica un componente todo se desarmaba desaparecían paneles enteros y solo funcionaba con la paleta
Solo pensar en hacerle refactoring es ciencia ficion


Bueno pues ágamos lo a mano solo usando swing


Código (java) [Seleccionar]

package com.ejemplo;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;


public class PanelContacto {

    private final JPanel panel = new JPanel();
   

    public PanelContacto() {
        Insets insets = new Insets(5, 5, 5, 5);
        panel.setLayout(new GridBagLayout());
        panel.add(new JLabel("Nombre"), new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.NONE, insets, 0, 0));
        panel.add(new JTextField(), new GridBagConstraints(1, 1, 1, 1, 1, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.HORIZONTAL, insets, 0, 0));
        panel.add(new JLabel("Apellido"), new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.NONE, insets, 0, 0));
        panel.add(new JTextField(), new GridBagConstraints(1, 2, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.HORIZONTAL, insets, 0, 0));
        panel.add(new JLabel("Direcion"), new GridBagConstraints(0, 3, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.NONE, insets, 0, 0));
        panel.add(new JTextField(), new GridBagConstraints(1, 3, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.HORIZONTAL, insets, 0, 0));
        panel.add(new JLabel("Edad"), new GridBagConstraints(0, 4, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.NONE, insets, 0, 0));
        panel.add(new JSpinner(new SpinnerNumberModel(1, 1, 100, 1)), new GridBagConstraints(1, 4, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.HORIZONTAL, insets, 0, 0));

    }

    public Container getPanel() {
        JPanel respuesta = new JPanel();
        respuesta.setLayout(new BorderLayout());
        respuesta.add(panel, BorderLayout.NORTH);
        return respuesta;
    }
}



Es feo pero es 100 veces mejor que la opción anterior además requiere algunos hacks(los layauts de swing son malos)


Luego de hacer refactoring y usar el patrón de diseño builder + interface fluida

Código (java) [Seleccionar]

package com.ejemplo;


import java.awt.Container;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;

public class PanelConPatronBuilder {

    public PanelConPatronBuilder() {
    }

    public Container getPanel() {

        return new PanelBuilder().agregaFila("Nombre", new JTextField()).
                agregaFila("Apellido", new JTextField()).
                agregaFila("Direcion", new JTextField()).
                agregaFila("Edad", new JSpinner(new SpinnerNumberModel(1, 1, 100, 1))).getPanel();
    }
}




U eso es genial mira el código habla por sí solo pero requiera ayuda de una clase echa en casa que tendrías que mantener y crear en caso de que la pierdas 

Aquí está la clase


Código (java) [Seleccionar]

package com.ejemplo;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class PanelBuilder {

    private final Container panel=new JPanel();
    private final Insets insets = new Insets(5, 5, 5, 5);
    int cont = -1;

    public PanelBuilder() {
       
        panel.setLayout(new GridBagLayout());
    }

   
   
   
    public PanelBuilder agregaFila(String nombre,JComponent jTextField) {
        panel.add(new JLabel(nombre), restricionDeEtiqueta(++cont));
        panel.add(jTextField, restricionComponente(cont));
        return  this;
    }

    private GridBagConstraints restricionComponente(int cont) {
        return new GridBagConstraints(1, cont, 1, 1, 1, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.HORIZONTAL, insets, 0, 0);
    }

    private GridBagConstraints restricionDeEtiqueta(int cont) {
        return new GridBagConstraints(0, cont, 1, 1, 0, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.NONE, insets, 0, 0);
    }

    public Container getPanel() {
        JPanel respuesta = new JPanel();
        respuesta.setLayout(new BorderLayout());
        respuesta.add(panel, BorderLayout.NORTH);
        return respuesta;
    }
}



Ahora si es enserio usando la ayuda de un librería externa bien echa

package com.ejemplo;

import java.awt.Container;
import org.metawidget.swing.SwingMetawidget;
Código (java) [Seleccionar]

public class PanelContactoMetaWidtget {

    public Container getPanel() {
        SwingMetawidget swingMetawidget =new SwingMetawidget();
        swingMetawidget.setToInspect(new Contacto());
        return swingMetawidget;
    }
}


Y requiere un pojo de toda la vida
package com.ejemplo;

Código (java) [Seleccionar]

public class Contacto {

    private String nombre;
    private String apellido;
    private String direcion;
    private int edad;

    public String getNombre() {
        return nombre;
    }

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

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getDirecion() {
        return direcion;
    }


public void setDirecion(String direcion) {
        this.direcion = direcion;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;

    }
}

y esta librería te obliga a programar orientado a objetos lo cual es bueno porque en un proyecto grande igual tendrías todo partido en varias clases pongámonos esta clase librería te pide que crees la clase contacto que es un pojo que lo arias de toda maneras en caso de que el contacto cambie automáticamente la vista se actualizaría
Digamos que tienes 100 paneles de contacto en caso de que cambie el contacto solo modificarías la clase contacto


metawidget http://metawidget.org/
builder http://architects.dzone.com/news/factories-builders-and-fluent-






#210
Java / Re: Eclipse
11 Diciembre 2011, 00:23 AM
para eclipse es WindowBuilder
http://www.eclipse.org/windowbuilder/

los editores crean gigantescos y horribles codigos icomprensibles e inmanetinibles incompatibles y lentos es mentira de que nunca tienes que tocar el codigo autogenerado si lo necestias pero el ide estorba ademas jamas e visto buen codigo autogenerado de ninguna herramienta