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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema con JButton y ordenación
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con JButton y ordenación  (Leído 7,607 veces)
Mai89

Desconectado Desconectado

Mensajes: 44



Ver Perfil WWW
Problema con JButton y ordenación
« en: 9 Agosto 2011, 19:06 pm »

Os explico la otra tarde se me ocurrió crear un programilla para que me resolviera una serie de cuadros. El caso es que el método de cálculo lo hice en un momento, pero crear la ventana... puff.
El caso es que no tengo ni idea de cómo hacer ventanas y de cómo colocar los elementos, he estado viendo códigos por diversas webs y al final he conseguido eso que veis a continuación.

La idea es meter las tres variables y que me generara el cuadro cuando presionara el botón... pero no tengo ni idea de cómo hacerlo.
El caso es que creé dos paneles, el primer panel lo dividí en una matriz para ordenar los labels, cuadros de texto y el botón. En el segundo panel pondría la tabla que me resultaría de los cálculos y tal...
El caso es que al poner la matriz el cuadro que yo tenia con variables fijas para ver si me aparecía o no se esfumó y no hay narices a sacarlo...
Necesito una ayudita en general... así que.. yo dejo el código de la clase para que le echéis un vistazo y me matéis por mala programadora si es preciso xDD

Código
  1. //Atributo para crear la ventana
  2.    private static JFrame ventanap;
  3.  
  4.    //Atributo para crear los paneles
  5.    private static JPanel panel_norte;
  6.    private static JPanel panel_central;
  7.  
  8.    //Atributos para la tabla(CENTRO)
  9.    final String[] nombre_columna= {"n",
  10.                                    "a",
  11.                                    "I",
  12.                                    "A",
  13.                                    "M",
  14.                                    "C"};
  15.    private static JTable tabla;
  16.    CalculoPrestamo calculo;
  17.  
  18.    //Atributos para crear los labels(NORTE)
  19.    private  JLabel lab_Co;
  20.    private JLabel lab_ano;
  21.    private JLabel lab_interes;
  22.  
  23.    //Atributos para los cuadros de texto(NORTE)
  24.    private static JTextField tf_Co;
  25.    private static JTextField tf_ano;
  26.    private static JTextField tf_interes;
  27.  
  28.    //Atributo botón y lo correspondiente a él.
  29.    private static JButton boton;
  30.    VentanaFrances crea_tabla;
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.    //CONSTRUCTOR
  38.    public VentanaPrestamo() {
  39.  
  40.        // Crea la ventana pone nombre, ajusta el tamaño al contenido y la hace visible
  41.        ventanap=new JFrame("Cuadro de Prestamo");
  42.        ventanap.setSize(500,200);
  43.        ventanap.setVisible(true);
  44.        //cierra la ventana correctamente deteniendo el proceso y todo lo demás
  45.        ventanap.setDefaultCloseOperation(ventanap.EXIT_ON_CLOSE);
  46.        calculo=new CalculoPrestamo(15000, 5, 3);
  47.  
  48.  
  49.  
  50.  
  51.        // Activa la colocacion para que podamos meter los paneles
  52.        ventanap.setLayout(new BorderLayout());
  53.  
  54.  
  55.        //Objetos correspondientes al panel NORTE
  56.        panel_norte=new JPanel();
  57.       //Coloco en el panel norte la etiqueta del capital inicial
  58.        ventanap.setLayout(new GridLayout(4,3));
  59.        lab_Co=new JLabel("Capital Inicial");
  60.        lab_Co.setToolTipText("Capital Inical:");
  61.        ventanap.add(lab_Co, BorderLayout.NORTH);
  62.  
  63.        tf_Co=new JTextField();
  64.        tf_Co.setSize(20,10);
  65.        ventanap.add(tf_Co, BorderLayout.NORTH);
  66.  
  67.        lab_interes=new JLabel("Tipo de Interes");
  68.        lab_interes.setToolTipText("Tipo de Interes:");
  69.        ventanap.add(lab_interes, BorderLayout.NORTH);
  70.  
  71.        tf_interes=new JTextField();
  72.        tf_interes.setSize(20,10);
  73.        ventanap.add(tf_interes, BorderLayout.NORTH);
  74.  
  75.        lab_ano=new JLabel("Año");
  76.        lab_ano.setToolTipText("Nº de Años:");
  77.        ventanap.add(lab_ano, BorderLayout.NORTH);
  78.  
  79.        tf_ano=new JTextField();
  80.        tf_ano.setSize(20,10);
  81.        ventanap.add(tf_ano, BorderLayout.NORTH);
  82.  
  83.  
  84.        //Correspondiente al boton y lo que hace
  85.        boton=new JButton("Generar cuadro");
  86.        ventanap.add(boton, BorderLayout.NORTH);
  87.  
  88.        ventanap.add(null, BorderLayout.NORTH);
  89.  
  90.  
  91.  
  92.  
  93.        //Creo la tabla, indico el tamaño y añado un scrollpane
  94.        tabla=new JTable(calculo.resultado_tabla(), nombre_columna);
  95.        tabla.setPreferredScrollableViewportSize(null);
  96.  
  97.        tabla.setForeground(Color.blue);
  98.        tabla.setBackground(Color.LIGHT_GRAY);
  99.  
  100.        //Objetos correspondientes al panel CENTRAL
  101.        panel_central=new JPanel();
  102.        ventanap.setLayout(new BorderLayout());
  103.        ventanap.setLayout(new GridLayout());
  104.        ventanap.add(panel_central, BorderLayout.CENTER);
  105.        panel_central.add(tabla);
  106.  
  107.  



« Última modificación: 22 Agosto 2011, 17:24 pm por Debci » En línea



Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Problema con JButton y ordenación
« Respuesta #1 en: 9 Agosto 2011, 20:23 pm »

Perdóname porque tan solo he leído el principio del código y he pensado en responderte algo que espero que te ayude.

Si quieres crear una ventana yo haría lo siguiente:

Heredaría de la clase JFrame, y pondría como atributos las tres labels y los tres fields, además del JButton. Es decir, sería algo así:

Código
  1. public class MiVentana extends JFrame {
  2.  
  3.        private JLabel label1;
  4. private JLabel label2;
  5. private JLabel label3;
  6. private JTextField campo1;
  7. private JTextField campo2;
  8. private JTextField campo3;
  9. private JButton botonCalculos;
  10.  
  11. public MiVentana(String tituloVentana){
  12.                super();
  13.                setTitle(tituloVentana);
  14.                getContentPane().setLayout(null);
  15. setResizable(false); //False indica que el usuario no puede cambiar el tamaño de la ventana, true indica que si puede cambiarlo
  16. label1 = new JLabel("Capital Inicial");
  17. label2 = new JLabel("Tipo de interés");
  18. label3 = new JLabel("Año");
  19.  
  20. campo1 = new JTextField(30);
  21. campo2 = new JTextField(30);
  22. campo3 = new JTextField(40);
  23.  
  24. botonCalculos = new JButton("Generar cuadro");
  25.  
  26. botonCalculos.addActionListener(new ActionListener(){
  27. public void actionPerformed(ActionEvent arg0) {
  28. //Mostrar Informacion en otro JFrame o en un JDialog
  29. }
  30.  
  31. });
  32.                //Este metodo es para especificar que hacer al pulsar la X de la ventana
  33.                addWindowListener(new WindowAdapter() {
  34. public void windowClosing(WindowEvent e) {
  35. dispose();
  36. System.exit(0);
  37. }
  38. });
  39. //Los valores de X, Y, WIDTH, HEIGHT los especificas para colocar los elementos en la posicion que desees de tu ventana
  40. getContentPane().add(label1);
  41. label1.setBounds(x, y, width, height);
  42. getContentPane().add(label2);
  43. label2.setBounds(x, y, width, height);
  44. getContentPane().add(label3);
  45. label3.setBounds(x, y, width, height);
  46. getContentPane().add(campo1);
  47. campo1.setBounds(x, y, width, height);
  48. getContentPane().add(campo2);
  49. campo2.setBounds(x, y, width, height);
  50. getContentPane().add(campo3);
  51. campo3.setBounds(x, y, width, height);
  52. getContentPane().add(botonCalculos);
  53. botonCalculos.setBounds(x, y, width, height);
  54.  
  55.                //Desde aqui hasta el final es para que la ventana aparezca centrada en la pantalla y para mostrarla
  56. pack();
  57. java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
  58.                //El metodo siguiente cambia el tamaño de la ventana
  59. setSize(new java.awt.Dimension(540, 280));
  60. setLocation((screenSize.width - 540) / 2, (screenSize.height - 280) / 2);
  61. setVisible(true);
  62. }
  63. }

En este código estamos creando una ventana personalizada.

En la acción que debes realizar al pulsar el botón (he puesto un comentario indicando donde es) podrías o crear un JFrame nuevo, añadir los elementos que quieras mostrar o crear un JDialog y mostrar la información.

Me imagino que habrá muchas mas formas de realizar lo que tú quieres y que la forma que te propongo no será la mejor. Pero yo es una de las formas que he usado y me ha ido bastante bien.

Cualquier duda pregunta ;)

Saludos.


En línea

L0n3l1eR

Desconectado Desconectado

Mensajes: 8


Estudiante en Ing. de Software


Ver Perfil
Re: Problema con JButton y ordenación
« Respuesta #2 en: 10 Agosto 2011, 07:41 am »

Buenas noches hmmm no se por algunos hacen sus frames ala antigua .. pudiendole hacer con el palette pero en fin... Mira te recomiendo esta pagina donde te enseña a usar la mayoria de los componentes de la GUI.. Tablas, jtress etc..

http://chuwiki.chuidiang.org/index.php?title=Categor%C3%ADa:Java:SWING

Si te pones abusado puedes usar drag y drop del palette y la otra mitad ala antigua

Saludos!
En línea

Mai89

Desconectado Desconectado

Mensajes: 44



Ver Perfil WWW
Re: Problema con JButton y ordenación
« Respuesta #3 en: 11 Agosto 2011, 13:23 pm »

Valkyr, estoy consiguiendo más decente con lo que me has pasado, pero esta parte del código no me compila y no tengo ni idea de porque es xDD
Código
  1. //Este metodo es para especificar que hacer al pulsar la X de la ventana
  2.                addWindowListener(new WindowAdapter() {
  3. public void windowClosing(WindowEvent e) {
  4. dispose();
  5. System.exit(0);
  6. }
  7. });
L0n3l1eR, no es que haga las cosas al modo antiguo o al moderno, es que nunca me había puesto a hacer ventanas, en mi FP no me enseñaron a hacerlas =( y tampoco me explicaron nada, así que en este tema estoy muuy verde. En cualquier caso le estado echando un vistazo al enlace, y ya me lo he agregado a favoritos.

PD: Valkyr, acabo de darme cuenta de que somos paisanos!! xDD
« Última modificación: 22 Agosto 2011, 17:24 pm por Debci » En línea



Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Problema con JButton y ordenación
« Respuesta #4 en: 11 Agosto 2011, 15:54 pm »

Valkyr, estoy consiguiendo más decente con lo que me has pasado, pero esta parte del código no me compila y no tengo ni idea de porque es xDD
Código
  1. //Este metodo es para especificar que hacer al pulsar la X de la ventana
  2.                addWindowListener(new WindowAdapter() {
  3. public void windowClosing(WindowEvent e) {
  4. dispose();
  5. System.exit(0);
  6. }
  7. });

Acabo de mirar el proyecto que tengo y lo tengo exactamente igual, así que lo único que se me ocurre es que no has importado estos dos paquetes:

Código
  1. import java.awt.event.WindowAdapter;
  2. import java.awt.event.WindowEvent;

Compruébalo, y si no es ese el problema pues me dices!! ;)

Citar
PD: Valkyr, acabo de darme cuenta de que somos paisanos!! xDD

Jajaja cierto, no estamos muy lejos!! Poca gente he encontrado por aquí que sea de la región xD.

Por cierto, yo acabo de terminar 2º año de la carrera y a penas hemos visto cosas de interfaz gráfica de ventanas, pero por Internet está todo muy bien explicado y con Java la mayoría de cosas son bastante sencillicas.

Saludos y ya nos comentas!
En línea

Mai89

Desconectado Desconectado

Mensajes: 44



Ver Perfil WWW
Re: Problema con JButton y ordenación
« Respuesta #5 en: 11 Agosto 2011, 19:11 pm »

Pues tengo toda la clase import java.awt.event. importada así que no sé voy a seguir dándole vueltas al tema, y a colocarme bien lo demás.

Yo me hice el FP de Administración de Sistmas, y un año de Grado pero el grado se me fue a tomar viento y tuve que volver, más que nada porque no tenia pasta ni para pillar una habitación en un piso. Me resulta raro que deis Java en programación, normalmente se da C/C++, o por lo menos yo... Pero vamos este año tengo la intención de retomarla por la UNED
En línea



Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Problema con JButton y ordenación
« Respuesta #6 en: 11 Agosto 2011, 19:39 pm »

¿Cuál es el fallo que te da exactamente? Yo lo he compilado y ejecutado con Eclipse y no me ha dado ningún fallo.

Sí, el año pasado tuvimos Pascal y C++, este año hemos tenido C++, Java y C. No damos clases sobre el lenguaje en sí, si no de programación (salvo Java que si lo hemos visto a fondo en la asignatura de POO) y luego en las clases de prácticas es donde ya vemos las caracteristicas fundamentales del lenguaje. Pero vamos, siempre he pensado que la documentación de un lenguaje siempre va a estar ahí, la cuestión es saber usarlo xD.

La verdad que es mucho dinero el de un piso, yo este año he estado viviendo en uno y...se han ido muchas muchas perras jajaja.
En línea

Mai89

Desconectado Desconectado

Mensajes: 44



Ver Perfil WWW
Re: Problema con JButton y ordenación
« Respuesta #7 en: 22 Agosto 2011, 13:33 pm »

Perdón, he estado un poco ausente unos días. Pues no sé el fallo exactamente, ya te lo pondré con detalle, de momento voy a terminar de hacer la ventana y tal que ya le he pillado el truco a la colocación, cuando lo tenga todo colocado ya me preocuparé de la acción del botón en profundidad.

Pues mucha suerte con la carrera! yo al final paso de la uned, me voy a meter al DAM xD a distancia también, a ver que tal me va.
En línea



Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Problema con JButton y ordenación
« Respuesta #8 en: 22 Agosto 2011, 17:24 pm »

Excelentes respuestas valkyr.

Doy el tema por zanjado?

Saludos
En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Problema con JButton y ordenación
« Respuesta #9 en: 22 Agosto 2011, 17:53 pm »

Excelentes respuestas valkyr.

Doy el tema por zanjado?

Saludos


Se agradece :), y yo diría que sí, pero yo no soy el que ha creado el tema.

Saludos.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con un jButton
Java
kapotnt 6 7,544 Último mensaje 4 Septiembre 2008, 18:07 pm
por CorazonValiente
superponer JLabel a JButton
Java
brian_e 4 13,811 Último mensaje 2 Abril 2009, 18:56 pm
por juancho77
eliminar instancia JButton
Java
brian_e 2 11,123 Último mensaje 3 Abril 2009, 20:42 pm
por brian_e
evento de un JButton
Java
brian_e 6 9,320 Último mensaje 27 Abril 2009, 16:25 pm
por Amerikano|Cls
Cambiar color a JButton....
Java
er_rafael_rafi 0 15,614 Último mensaje 18 Abril 2009, 18:42 pm
por er_rafael_rafi
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines