Autor
|
Tema: Problema con JButton y ordenación (Leído 7,543 veces)
|
Mai89
|
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 //Atributo para crear la ventana private static JFrame ventanap ; //Atributo para crear los paneles private static JPanel panel_norte ; private static JPanel panel_central ; //Atributos para la tabla(CENTRO) final String[] nombre_columna = {"n", "a", "I", "A", "M", "C"}; CalculoPrestamo calculo; //Atributos para crear los labels(NORTE) //Atributos para los cuadros de texto(NORTE) //Atributo botón y lo correspondiente a él. VentanaFrances crea_tabla; //CONSTRUCTOR public VentanaPrestamo() { // Crea la ventana pone nombre, ajusta el tamaño al contenido y la hace visible ventanap =new JFrame("Cuadro de Prestamo"); ventanap.setSize(500,200); ventanap.setVisible(true); //cierra la ventana correctamente deteniendo el proceso y todo lo demás ventanap.setDefaultCloseOperation(ventanap.EXIT_ON_CLOSE); calculo=new CalculoPrestamo(15000, 5, 3); // Activa la colocacion para que podamos meter los paneles //Objetos correspondientes al panel NORTE //Coloco en el panel norte la etiqueta del capital inicial lab_Co =new JLabel("Capital Inicial"); lab_Co.setToolTipText("Capital Inical:"); tf_Co.setSize(20,10); lab_interes =new JLabel("Tipo de Interes"); lab_interes.setToolTipText("Tipo de Interes:"); tf_interes.setSize(20,10); lab_ano.setToolTipText("Nº de Años:"); tf_ano.setSize(20,10); //Correspondiente al boton y lo que hace boton =new JButton("Generar cuadro"); //Creo la tabla, indico el tamaño y añado un scrollpane tabla =new JTable(calculo. resultado_tabla(), nombre_columna ); tabla.setPreferredScrollableViewportSize(null); tabla. setForeground(Color. blue); tabla. setBackground(Color. LIGHT_GRAY); //Objetos correspondientes al panel CENTRAL panel_central.add(tabla);
|
|
« Última modificación: 22 Agosto 2011, 17:24 pm por Debci »
|
En línea
|
|
|
|
Valkyr
Desconectado
Mensajes: 646
Divide y vencerás
|
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í: public class MiVentana extends JFrame { public MiVentana (String tituloVentana ){ super(); setTitle(tituloVentana); getContentPane().setLayout(null); setResizable(false); //False indica que el usuario no puede cambiar el tamaño de la ventana, true indica que si puede cambiarlo label1 = new JLabel("Capital Inicial"); label2 = new JLabel("Tipo de interés"); botonCalculos = new JButton("Generar cuadro"); //Mostrar Informacion en otro JFrame o en un JDialog } }); //Este metodo es para especificar que hacer al pulsar la X de la ventana dispose(); } }); //Los valores de X, Y, WIDTH, HEIGHT los especificas para colocar los elementos en la posicion que desees de tu ventana getContentPane().add(label1); label1.setBounds(x, y, width, height); getContentPane().add(label2); label2.setBounds(x, y, width, height); getContentPane().add(label3); label3.setBounds(x, y, width, height); getContentPane().add(campo1); campo1.setBounds(x, y, width, height); getContentPane().add(campo2); campo2.setBounds(x, y, width, height); getContentPane().add(campo3); campo3.setBounds(x, y, width, height); getContentPane().add(botonCalculos); botonCalculos.setBounds(x, y, width, height); //Desde aqui hasta el final es para que la ventana aparezca centrada en la pantalla y para mostrarla pack(); java. awt. Dimension screenSize = java. awt. Toolkit. getDefaultToolkit(). getScreenSize(); //El metodo siguiente cambia el tamaño de la ventana setLocation((screenSize.width - 540) / 2, (screenSize.height - 280) / 2); setVisible(true); } }
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
Mensajes: 8
Estudiante en Ing. de Software
|
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:SWINGSi te pones abusado puedes usar drag y drop del palette y la otra mitad ala antigua Saludos!
|
|
|
En línea
|
|
|
|
Mai89
|
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 //Este metodo es para especificar que hacer al pulsar la X de la ventana dispose(); } });
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
Mensajes: 646
Divide y vencerás
|
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 //Este metodo es para especificar que hacer al pulsar la X de la ventana dispose(); } });
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: import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;
Compruébalo, y si no es ese el problema pues me dices!! 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
|
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
Mensajes: 646
Divide y vencerás
|
¿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
|
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
Mensajes: 2.021
Actualizate o muere!
|
Excelentes respuestas valkyr.
Doy el tema por zanjado?
Saludos
|
|
|
En línea
|
|
|
|
Valkyr
Desconectado
Mensajes: 646
Divide y vencerás
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con un jButton
Java
|
kapotnt
|
6
|
7,496
|
4 Septiembre 2008, 18:07 pm
por CorazonValiente
|
|
|
superponer JLabel a JButton
Java
|
brian_e
|
4
|
13,758
|
2 Abril 2009, 18:56 pm
por juancho77
|
|
|
eliminar instancia JButton
Java
|
brian_e
|
2
|
11,100
|
3 Abril 2009, 20:42 pm
por brian_e
|
|
|
evento de un JButton
Java
|
brian_e
|
6
|
9,281
|
27 Abril 2009, 16:25 pm
por Amerikano|Cls
|
|
|
Cambiar color a JButton....
Java
|
er_rafael_rafi
|
0
|
15,541
|
18 Abril 2009, 18:42 pm
por er_rafael_rafi
|
|