SoloCodigo

Programación General => Java => Mensaje iniciado por: giorgione en Viernes 25 de Julio de 2008, 00:35

Título: COMO LLAMAR CON UN BOTON OTRA VENTANA?
Publicado por: giorgione en Viernes 25 de Julio de 2008, 00:35
Hola a todos ! Soy nuevo en Java y tengo algunos problemas con una aplicaion experimental que intento hacer; esta consite en
un proyecto (a proposito uso el JBuilderX Enterprise v10) que consta de dos clases: una principal llamada  CAplicacion y otra llamada ventana2; ventana2 tioene un metodo llamado verventana2 que permite ver una ventana con un mensaje pero cuando llamo este metodo en CAplicacion me bota error (a pesar que el compilador no considera como error mi declaracion del objeto de v2 que es un objeto de ventana2).En el codigo que aqui presento intento llamar al metodo verventana2 de la clase v2 (asi he definido ventana2 dentro del metodo main) al pulsar un boton.
POR FAVOR ESPERO SU RESPUESTA CUANTO ANTES Y CUALQUIER AYUDA GUSTOSO LA ACEPTARE
  -----------------Giorgione----------------------


Aqui presento el codigo de CAplicacion


package caplicacion;

import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;

/**
 * <p>Título: Ventana</p>
 * <p>Descripción: Programa que muestra una ventana en pantalla</p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Empresa: </p>
 * @author Giorgione
 * @version 1.0
 */
public class CAplicacion extends javax.swing.JFrame {
  //JFrame es la clase padre de CAplicacion (recuerda el extends)
  JButton jButton1 = new JButton();  //un boton
  XYLayout xYLayout1 = new XYLayout(); //permite manipular el boton dentro de coord x,y
  private Object v2;
  public CAplicacion() {  //este es un constructor
    setSize(300,330); //tamaño
    setTitle("Aplicacion"); //titulo
    initComponents();//inicia los controles o componenetes
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  private void initComponents(){
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  }
  public static void main(String[] args) {
    CAplicacion CAplicacion1 = new CAplicacion();
    new CAplicacion().setVisible(true);
    ventana2 v2 = new ventana2();
  }
  private void jbInit() throws Exception {
    jButton1.setText("jButton1");
    jButton1.addActionListener(new CAplicacion_jButton1_actionAdapter(this));
    this.getContentPane().setLayout(xYLayout1);
    this.getContentPane().add(jButton1, new XYConstraints(127, 82, -1, -1));
  }

  void jButton1_actionPerformed(ActionEvent e) {
    v2.verventana2();
  }

}

class CAplicacion_jButton1_actionAdapter implements java.awt.event.ActionListener {
  CAplicacion adaptee;

  CAplicacion_jButton1_actionAdapter(CAplicacion adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}


y aqui esta el codigo de ventana2


package caplicacion;

import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.awt.*;

/**
 * <p>Título: Ventana</p>
 * <p>Descripción: Programa que muestra una ventana en pantalla</p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Empresa: </p>
 * @author Giorgione
 * @version 1.0
 */

class ventana2 {
  JPanel jPanel1 = new JPanel();
  XYLayout xYLayout1 = new XYLayout();
  JLabel jLabel1 = new JLabel();
  public ventana2() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }

  }
  public static void verventana2(){
            jLabel1.setVisible(true);
  }
  private void jbInit() throws Exception {
    jLabel1.setFont(new java.awt.Font("Dialog", 0, 23));
    jLabel1.setForeground(Color.red);
    jLabel1.setText("HOLA, SOY LA VENTANA 2");
    jPanel1.setLayout(xYLayout1);
    jPanel1.add(jLabel1,  new XYConstraints(50, 72, 318, 118));
  }
}
Título: Re: COMO LLAMAR CON UN BOTON OTRA VENTANA?
Publicado por: manix en Viernes 25 de Julio de 2008, 00:50
Hola

mira hay un par de cosas a corregir y vas  a ir en orden:

Tienes dos ventanas (JFrame o JPanel... en tu caso) una es llamada CAplicacion y la otra ventana2 , ambas tienen que extender de algun contendor grafico para que las puedas ver, en tu caso, la clase ventana2  la tienes asi:
Código: Java
  1. class ventana2 {
  2.  

te recomiendo que sea asi:
Código: Java
  1. class ventana2 extendes JFrame{
  2.  

luego nos vamos a la clase CAplicacion y cambiamos esto:
Código: Java
  1. private Object v2;
  2.  
por esto:
Código: Java
  1. private ventana2 v2;
  2.  


despues en el constructor de CAplicacion  hacemos la instancia de ventana2 asi:
Código: Java
  1. this.v2 = new ventana2();
  2.  

Ahora nos vamos al evento del boton solo debe de estar esta linea:
Código: Java
  1.  
  2. this.v2.setVisible(true);
  3.  

y para finalizar quitamos esta linea del main:
Código: Java
  1. ventana2 v2 = new ventana2();
  2.  


saludos
Título: Re: COMO LLAMAR CON UN BOTON OTRA VENTANA?
Publicado por: giorgione en Viernes 25 de Julio de 2008, 01:01
GRacias ahorita mismo voy a casa a corregirlo