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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Necesito una idea sobre como hacer un ejercicio
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito una idea sobre como hacer un ejercicio  (Leído 11,255 veces)
juancho77


Desconectado Desconectado

Mensajes: 455


rie con demencia


Ver Perfil
Re: Necesito una idea sobre como hacer un ejercicio
« Respuesta #10 en: 5 Diciembre 2008, 20:38 pm »

Si te pidio arrays, debes asumir que la lista de comidas es fija. Si usarias un Vector, la caracteristica de este es que es redimensionable en ejecucion. Entonces, si se quisiera ofrecer un nuevo plato, el sistema podria agregarlo facilmente al menu. Se entiende?
Pero como te piden arrays, solo crea un array de las comidas que quieras. Cada comida es un objeto (va, deberia ser).
Podrias tambien hacer una clase CENA que tenga como atributos: una comida, un postre, una bebida, componentes auxiliares (cubiertos, por ejemplo).


En línea

jos3

Desconectado Desconectado

Mensajes: 21



Ver Perfil
Re: Necesito una idea sobre como hacer un ejercicio
« Respuesta #11 en: 12 Diciembre 2008, 05:52 am »

hola nesecito ayuda a que me expliquen para que sirven ciertas cosas con respecto a este menu el cual me dio el profesor para que me basara en el para hacer el mio!!! pero no se para que sirven ciertas cosas aca les dejo el ejercicio que me dio el profesor
 en si los que no entiendo es que hacen los que dice gridbaglayout y GridBagConstraints en el ejercicio!! saludos y gracias
Código
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.text.DecimalFormat;
  5.  
  6. public class MenuRest extends JApplet implements ActionListener {
  7.  
  8. public Object arreglo[][] = new Object[10][2];
  9. public JComboBox combo = new JComboBox();
  10. public JTextField precio = new JTextField(), TotalGeneral = new JTextField();
  11. public JButton ins = new JButton( "Agregar" ), clean = new JButton( "Nuevo" );
  12. public JTextArea info1 = new JTextArea();
  13. public JTextArea info2 = new JTextArea();
  14. public double acumulado = 0, precioActual = 1250, total = 0;;
  15.  
  16. // Imagenes
  17. public Icon icono = new ImageIcon("Logo.gif");
  18.  
  19. // Definicion de Colores
  20. public Color gris = new Color(213,213,213);
  21. public Color azul = new Color( 70, 97,141);
  22.  
  23. public DecimalFormat dosCifras = new DecimalFormat("#,###,##0.00");
  24.  
  25. // Constructor de la clase
  26. public MenuRest() {
  27.  
  28. LlenarArreglo(); // coloca los datos de comidas dentro del arreglo
  29.  
  30. // Crea la interfaz
  31. JLabel Logo = new JLabel(icono);
  32. JLabel label1 = new JLabel( "      Producto:" );
  33. JLabel label2 = new JLabel( "      Precio:" );
  34. JLabel label3 = new JLabel( " Producto" );
  35. JLabel label4 = new JLabel( " Precio" );
  36. JLabel label5 = new JLabel( "Total:", JLabel.RIGHT );
  37. info1.setPreferredSize(new Dimension(250,200) );
  38. info2.setPreferredSize(new Dimension(250,200) );
  39. info1.setEnabled( false );
  40. info2.setEnabled( false );
  41. info1.setDisabledTextColor( azul );
  42. info2.setDisabledTextColor( azul );
  43. label3.setOpaque( true );
  44. label4.setOpaque( true );
  45. label3.setBackground(azul);
  46. label4.setBackground(azul);
  47. label3.setForeground( gris );
  48. label4.setForeground( gris );
  49. ins.setPreferredSize( new Dimension(90,25) );
  50. combo.setPreferredSize(new Dimension(250,25) );
  51. precio.setPreferredSize( new Dimension(150,25) );
  52. TotalGeneral.setPreferredSize( new Dimension(150,25) );
  53. precio.setEditable( false );
  54. TotalGeneral.setEditable( false );
  55.  
  56. // Eventos
  57. combo.addActionListener( this );
  58. ins.addActionListener( this );
  59. clean.addActionListener( this );
  60.  
  61. JPanel Panel1 = new JPanel( new GridBagLayout() );
  62. Panel1.setOpaque( false );
  63. Panel1.add( label1, grid(0, 0, 1, 1) );
  64. Panel1.add( label2, grid(0, 1, 1, 1) );
  65. Panel1.add( combo,  grid(1, 0, 1, 2) );
  66. Panel1.add( precio, grid(1, 1, 1, 1) );
  67. Panel1.add( ins,    grid(2, 1, 1, 1) );
  68. Panel1.add( new JLabel( new ImageIcon("Barra.jpg") ), grid(0, 2, 1, 3) );
  69.  
  70. JPanel Panel2 = new JPanel( new GridBagLayout() );
  71. Panel2.setOpaque( false );
  72. Panel2.add( label3, grid( 0, 0, 1, 1, 0 ) );
  73. Panel2.add( label4, grid( 1, 0, 1, 1, 0 ) );
  74. Panel2.add( info1,  grid( 0, 1, 1, 1, 0 ) );
  75. Panel2.add( info2,  grid( 1, 1, 1, 1, 0 ) );
  76.  
  77. JPanel Panel3 = new JPanel( new FlowLayout() );
  78. Panel3.setOpaque( false );
  79. Panel3.setPreferredSize( new Dimension(500,35) );
  80. Panel3.add( clean );
  81. Panel3.add( label5 );
  82. Panel3.add( TotalGeneral );
  83.  
  84. JPanel principal = new JPanel( new GridBagLayout() );
  85. principal.setBackground(gris);
  86. principal.add( Logo, grid(0, 0, 1, 1) );
  87. principal.add( Panel1, grid( 0, 1, 1, 1 ) );
  88. principal.add( Panel2, grid( 0, 2, 1, 1 ) );
  89. principal.add( Panel3, grid( 0, 3, 1, 1 ) );
  90. this.add( principal );
  91. }
  92.  
  93. public void actionPerformed( ActionEvent objeto ) {
  94. if ( objeto.getSource() == combo ) {
  95. String precioElegido = "";
  96. // Localiza producto
  97. for( int i = 0; i < 10; i++ ) {
  98. if(arreglo[i][0] == combo.getSelectedItem() ) {
  99. precioElegido = arreglo[i][1].toString();
  100. i = 10;
  101. }
  102. }
  103. precioActual = Double.parseDouble( precioElegido );
  104. precio.setText( dosCifras.format( precioActual ) );
  105. }
  106.  
  107. if ( objeto.getSource() == ins ) {
  108. String contenido1 = info1.getText();
  109. if( !contenido1.isEmpty() )
  110. contenido1 += "\n";
  111.  
  112. contenido1 += combo.getSelectedItem();
  113. info1.setText( contenido1 );
  114.  
  115. contenido1 = info2.getText();
  116. if( !contenido1.isEmpty() )
  117. contenido1 += "\n";
  118.  
  119. contenido1 += precio.getText();
  120. info2.setText( contenido1 );
  121.  
  122. total += precioActual;
  123. TotalGeneral.setText( dosCifras.format(total) );
  124. }
  125.  
  126. if ( objeto.getSource() == clean ) {
  127. info1.setText("");
  128. info2.setText("");
  129. TotalGeneral.setText("0.00");
  130. total = 0;
  131. }
  132. }
  133.  
  134. private GridBagConstraints grid( int x, int y, int alto, int ancho) {
  135. orden.gridheight    = alto; orden.gridwidth     = ancho;
  136. orden.gridx         = x;    orden.gridy         = y;
  137. orden.insets.top    = 5;    orden.insets.bottom = 5;
  138. orden.insets.left   = 5;    orden.insets.right  = 5;
  139. orden.anchor = orden.WEST;
  140. return orden;
  141. }
  142.  
  143. private GridBagConstraints grid( int x, int y, int alto, int ancho, int ins ) {
  144. orden.gridheight    = alto; orden.gridwidth     = ancho;
  145. orden.gridx         = x;    orden.gridy         = y;
  146. orden.insets.top    = ins;    orden.insets.bottom = ins;
  147. orden.insets.left   = ins;    orden.insets.right  = ins;
  148. orden.fill = orden.BOTH;
  149. return orden;
  150. }
  151.  
  152. private void LlenarArreglo() {
  153.  
  154. arreglo[0][0] = (String) "Hamburguesa"; arreglo[0][1] = (double) 1250;
  155. arreglo[1][0] = (String) "Hot Dog"; arreglo[1][1] = (double) 950;
  156. arreglo[2][0] = (String) "Papas a la Francesa"; arreglo[2][1] = (double) 1500;
  157. arreglo[3][0] = (String) "Porcion de Arroz"; arreglo[3][1] = (double) 500;
  158. arreglo[4][0] = (String) "Porcion de Frijoles"; arreglo[4][1] = (double) 500;
  159. arreglo[5][0] = (String) "Carne"; arreglo[5][1] = (double) 500;
  160. arreglo[6][0] = (String) "Pollo"; arreglo[6][1] = (double) 450;
  161. arreglo[7][0] = (String) "Pescado"; arreglo[7][1] = (double) 625;
  162. arreglo[8][0] = (String) "Refresco Gaseoso"; arreglo[8][1] = (double) 230;
  163. arreglo[9][0] = (String) "Refresco Natural"; arreglo[9][1] = (double) 200;
  164. combo.addItem( (String) arreglo[0][0] );
  165. combo.addItem( (String) arreglo[1][0] );
  166. combo.addItem( (String) arreglo[2][0] );
  167. combo.addItem( (String) arreglo[3][0] );
  168. combo.addItem( (String) arreglo[4][0] );
  169. combo.addItem( (String) arreglo[5][0] );
  170. combo.addItem( (String) arreglo[6][0] );
  171. combo.addItem( (String) arreglo[7][0] );
  172. combo.addItem( (String) arreglo[8][0] );
  173. combo.addItem( (String) arreglo[9][0] );
  174. precio.setText( dosCifras.format(arreglo[0][1]) );
  175. }
  176. }


« Última modificación: 12 Diciembre 2008, 05:54 am por jos3 » En línea

juancho77


Desconectado Desconectado

Mensajes: 455


rie con demencia


Ver Perfil
Re: Necesito una idea sobre como hacer un ejercicio
« Respuesta #12 en: 13 Diciembre 2008, 05:17 am »

GridBagLayout es un Layout para disponer elementos en un Panel, Container, etc. Otros layouts mas comunes son FlowLayout, GridLayout, etc...
La ventaje del GBL es que te permite disponer los elementos CASI como vos quieras (es como el gridlayout pero mucho mas flexible).
La desventaja es que es mas dificil de usar.

GridBagConstraints o algo asi, es una caractertistica del GBL. No se bien que hace, pero creo que maneja como se disponen los elementos y a que distancia, etc.

Deberias buscar mas en el JAVADOC.
En línea

jos3

Desconectado Desconectado

Mensajes: 21



Ver Perfil
Re: Necesito una idea sobre como hacer un ejercicio
« Respuesta #13 en: 15 Diciembre 2008, 18:11 pm »

GridBagLayout es un Layout para disponer elementos en un Panel, Container, etc. Otros layouts mas comunes son FlowLayout, GridLayout, etc...
La ventaje del GBL es que te permite disponer los elementos CASI como vos quieras (es como el gridlayout pero mucho mas flexible).
La desventaja es que es mas dificil de usar.

GridBagConstraints o algo asi, es una caractertistica del GBL. No se bien que hace, pero creo que maneja como se disponen los elementos y a que distancia, etc.

Deberias buscar mas en el JAVADOC.
oyen juancho77 aca te dejo una explicacion que me dio un amigo sobre para que es es el gridbaglayout y el gridbagconstrain
Citar
El Diseñador llamado GridBagLayout() hace que el contenedor (cualquiera que sea, incluyendo el JApplet) se administre en forma de una cuadrícula en donde sólo se tenga que determinar en qué coordenada yx de esa cuadrícula se coloca el componente y cuántas celdas ocupará en alto y ancho.
 
De tal forma que cada componente debe ser configurado al momento de agregarlo al contenedor, para configurar un componente se debe especificar por medio del constructor del GridBagLayout() las coordenadas ya mencionadas; este constructor se llama GridBagConstraints().
 
Sería muy tedioso tener que configurar todas estas coordenadas individualmente para cada componente de la interfaz, sin mencionar la cantidad de líneas de código que involucraría; por esta razón es que creé un método llamado grid(), que configura para cada componente sus coordenadas y una vez configuradas, devuelve al flujo del sistema el constructor del GridBagLayout() para que el componente sea colocado correctamente sobre el contenedor.
 
Como puedes ver, el método requiere de 4 parámetros (hay una sobreescritura del mismo método en el programa, pero ambas hacen lo mismo), ellos son, int x: valor de la coordenada cartesiana x; int y: valor de la coordenada cartesiana y; int alto: el total de celdas que abarcará el componente a lo alto del contenedor; int ancho: el total de celdas que abarcará el componente a lo ancho del contenedor; (int ins, para el caso de la sobreescritura, la distancia que habrá entre cada componente a todos sus alrededores).
 
Vea un ejemplo:
 
Si se crea un JLabel y un JTextArea, en un contenedor cualquiera, con el GridBagLayout() podría ser colocado de varias formas, para el ejemplo supongamos...
 
Primero
 
JLabel etiq = new JLabel("JLabel");
JTextArea = area = new JTextArea();
 
contenedor.add(etiq, grid(0, 0, 1, 1) );
contenedor.add(area, grid(1, 0, 1, 1) );
 
Estamos colocando el JLabel en la posición x0, y0, en donde solamente abarcará 1 celda de ancho al igual que 1 celda de alto.
El JTextArea lo colocamos en x1, y0, igualmente con 1 celda de ancho y 1 de alto.
 
Segundo
 
JLabel etiq = new JLabel("JLabel");
JTextArea = area = new JTextArea();
 
contenedor.add(etiq, grid(0, 0, 1, 1) );
contenedor.add(area, grid(1, 0, 2, 2) );
 
Estamos colocando el JLabel en la posición x0, y0, en donde solamente abarcará 1 celda de ancho al igual que 1 celda de alto.
El JTextArea lo colocamos en x1, y0, pero con 2 celdas de alto y 2 de ancho
En línea

wilru

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Necesito una idea sobre como hacer un ejercicio con JTable
« Respuesta #14 en: 1 Junio 2010, 17:42 pm »

Cordial saludo.

... y vi que sos un teso en programacion, quiero comentarte lo siguiente y con todo respeto, solicitar tu ayuda aprovechando tu espiritu colaborador y gran conocimiento:

Estoy desarrollando un pequeño proyecto para la materia de Programacion Orientada a objetos, la cual vemos en Java, consiste en la gestion de reservas para un pequeño hotel o residencia, en el cual se tiene una clase que me muestra los menus de opciones y gestiona la validacion de un usuario Administrador y otro Recepcionista(digitan login y password) para poder ingresar al sistema, otra llamada Formulario_reserva la cual captura la informacion del cliente a registrar invocando a su vez a otra clase que gestiona la reserva: crea(), elimina() y consulta(), en la clase Formulario_reserva existe un boton de "consulta" el cual al ser presionado debe de ir a otra clase llamada habitaciones en la cual queremos mostrar la disponibilidad de habitaciones en el momento de la  consulta, es decir, se tiene pensado dos tipos de habitaciones: simple y doble, aqui se debe visualizar las habitaciones libre y ocupadas por cada tipo, ademas al ser seleccionada una habitacion debe traer este dato a Formulario_reserva para guardar en un vector(de la Clase Vector de Java) junto con los demas datos del Formulario_reserva, y tambien actualizar la informcion para que en una segunda o tercer ingreso de un cliente nuevo, la habitacion anteriormente seleccionada aparezca ocupada, si una reserva es cancelada igualmente la habitacion ocupada debe aparecer como libre.

Espero ser claro en este requerimiento y agradezco inmensamente cualquier ayuda u orientacion que me puedas brindar si es tu campo y si dispones de tiempo.
El proyecto se desarrolla tipo aplicacion de escritorio en java, lo estamos haciendo en JCreator y/o eclipse. me urge terminarlo pues es trabajo final de semestre y apenas empiezo a dar pasos en programacion

Te adjunto lo que tenemos desarrollado hasta ahora, lo cual funciona correctamente, solo falta la implementacion de Habitciones...

muchisimas gracias y por favor disculpa mi atrevimiento.


/**
 * @(#)Form_Reserva.java
 *
 *
 * @author
 * @version 1.00 2010/5/31
 */

import java.awt.Button;
import java.awt.Event;
import java.awt.Frame;
import java.awt.GridLayout;
import java.util.Vector;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.*;
import java.util.*;
public class Form_Reserva extends JFrame
{
   //Habitaciones Hb = new Habitaciones();
   public static Vector R = new Vector();
   
   JLabel tipo       = new JLabel("Tipo de Habitación:");
   JLabel nomb       = new JLabel("Nombre:");
   JLabel apel       = new JLabel("Apellido:");
   JLabel cc         = new JLabel("Cedula:");
   JLabel dir        = new JLabel("Direccion:");
    JLabel tel        = new JLabel("Telefono:");
   JLabel Habit      = new JLabel("Habitación:");
   JLabel Nhabit     = new JLabel("");
   
   JTextField nombre = new JTextField("",20);
   JTextField apell = new JTextField("",20);
   JTextField ced = new JTextField("",20);
   JTextField direc = new JTextField("",20);
   JTextField tele = new JTextField("",20);
   
   Button guardar = new Button("Guardar");
   Button cancelar = new Button("Cancelar");
   Button consul = new Button("Consultar");
   
   CheckboxGroup habita = new CheckboxGroup();
   Checkbox s = new Checkbox("Simple");
   Checkbox d = new Checkbox("Doble");
   
      

   
   

    public Form_Reserva()
    {
        try
        {
           init();
        }
        catch(Exception ex)
        {
           ex.printStackTrace();
        }
    }
     void init()throws Exception
    {
        //setLayout(new GridLayout(8,2,3,2));
        Container pane  = getContentPane();
      JPanel    panel = new JPanel(new FlowLayout());
        s.setCheckboxGroup(habita);
        d.setCheckboxGroup(habita);
        s.setState(true);
       
       panel.add(tipo); panel.add(s); panel.add(d);
       panel.add(consul);
       pane.add(panel, BorderLayout.NORTH);
        panel = new JPanel(new GridLayout(1,1));
       panel.add(new Label("     ======================================================  "));
        pane.add(panel, BorderLayout.CENTER);
      
       panel = new JPanel(new GridLayout(8,2,4,4));
      
      
       panel.add(cc,null);      panel.add(ced,null);   
       panel.add(nomb,null);    panel.add(nombre,null);
       panel.add(apel,null);   panel.add(apell,null);
       panel.add(dir,null);    panel.add(direc,null);
       panel.add(tel,null);    panel.add(tele,null);
       panel.add(Habit,null);    panel.add(Nhabit,null);
       panel.add( guardar,null);    panel.add(cancelar,null);
       pane.add(panel, BorderLayout.SOUTH);
       pack();
       setLocationRelativeTo(null);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      
    }
    public static void main(String args[])
   {
      
      Form_Reserva F= new Form_Reserva();
      F.setLocation(350,250);
      F.setVisible(true);
      F.pack();
      
      
   
   }
   public boolean action (Event t, Object arg)
    {
       if(t.target== guardar)
       {
             
          Reserva r = new Reserva();
          r.CrearR((nombre.getText()),(apell.getText()),(ced.getText()),(direc.getText()),(tele.getText()) );
          R.addElement(r);
          int tv=R.size();
     
           for(int i=0;i<tv;i++){
           System.out.println(" Vector  "+R.toString());
           Reserva x=(Reserva)R.elementAt(i);
           JOptionPane.showMessageDialog(null,"Creacion Exitosa, Datos de la Reserva:\n\n Codigo:  "+r.cod_r  + " \n Nombre:  "+x.Nombre+ "\n Apellido:  "+x.Apellido+ "\n Cedula:  "+x.Cedula+"\n Direccion:  "+x.Direccion+ "\n Telefono:  "+x.Telefono +"");
           //JOptionPane.showMessageDialog(null,"Creacion Exitosa, Datos de la Reserva:\n\n   "+R.elementAt(i));
           
           
      }   
             
             
         
          return true;
         
         
       }
   
      if(t.target== cancelar)
       {
          System.exit(0);
       }
      
       if(t.target== consul)
       {
       JOptionPane.showMessageDialog(null,"Click en consiltar,");
          return true;
       }
      return false;
      
      
    }

   
   
   
   
}

la  clase reserva:*************

/**
 * @(#)Reserva.java
 *
 *
 * @author
 * @version 1.00 2010/5/31
 */
import javax.swing.*;
import java.lang.*;
import java.util.*;
import java.awt.*;


public class Reserva
 {
    
    //Form_Reserva Fr= new Form_Reserva();
    
    
    public String Nombre, Apellido, Cedula, Direccion, Telefono; 
    public int cod_r;   
   
    public Reserva()
    {
       
    }
   
    void CrearR(String n,String a,String c, String d, String t )
    {
       this.Nombre    =n;
       this.Apellido  =a;
       this.Cedula    =c;
       this.Direccion =d;
       this.Telefono  =t;
       this.cod_r     =Integer.parseInt(c);
   

    }
    String ConsultaR()
    {
       return   "Nombre : "+Nombre+"Apellido : "+Apellido+"Cedula : "+Cedula+"Direccion : "+Direccion+"Telefono : "+Telefono+"Codigo Reserva:"+cod_r;
    }
    String CancelarR()
    {
       return   "Se elimina Reserva:\n\nNombre : "+Nombre+"Apellido : "+Apellido+"Cedula : "+Cedula+"Direccion : "+Direccion+"Telefono : "+Telefono+"Codigo Reserva:"+cod_r;
    }
   
   
   
}

Ahora la clase que queremos implementar, he aqui una vaga idea: JTable para mostrar los datos del vector creado en la clase Formulario_Reserva, y gestionar disponibilidad de habitaciones:


/**
 * @(#)Habitaciones.java
 *
 *
 * @author
 * @version 1.00 2010/5/31
 */
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;

public class Habitaciones extends JFrame
{
    //Form_Reserva Fr= new Form_Reserva();
   // Reserva      R = new Reserva();
   
   
   
   
    public Habitaciones()
    {
       
       super("Gestion Habitaciones");
       
        String[] columnNames = {"Cedula ", "Apellido"};

        //se crea la Tabla
        final JTable table = new JTable(data, columnNames);
       
        table.setPreferredScrollableViewportSize(new Dimension(300, 100));


        //Creamos un JscrollPane y le agregamos la JTable
        JScrollPane scrollPane = new JScrollPane(table);

        //Agregamos el JScrollPane al contenedor
        getContentPane().add(scrollPane, BorderLayout.CENTER);

        //manejamos la salida
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
       
       
    }
   
     public static void main(String[] args)
     {
        Habitaciones h = new Habitaciones();
        h.pack();
        h.setVisible(true);
    }
   
   
}
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines