Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Choripan

Páginas: [1]
1
Buenos Dias a todos, necesito un poco de ayuda para resolver una duda que tengo.
Ya hace un tiempo que he estado aprendiendo a programar en java, he hecho unos cuantos programas, hace poco empece a usar NetBeans, es un poco mas comodo que el block de Texto y en muchos casos me ayuda a resolver
dudas facilmente.

El programa que estoy haciendo ahora es bastante simple, es simplemente el inicio de una especie de "proyecto"
(en realidad es para practicar y aprender) que quiero realizar. Estoy usando un TextArea el cual no es editable y me imprime varias cosas... por ejemplo, en este momento para probar, me imprime el programa 5 veces la palabra "Hola" cada vez que presiono enter en un TextField.
Mi duda es la siguiente, como hago para que cuando son impresas varias lineas de texto en este TextArea, el me muestre la ultima linea impresa y no se quede mostrando las primeras. Mostrare unas imagenes para explicarme mejor:

Asi se ve el programa cuando lo ejecuto y luego de presionar enter varias veces:


Pero lo que quiero, es que cada vez que presione enter (por ejemplo) En el TextArea se me muestre lo ultimo que se imprimio, algo asi:


De esta manera, el usuario no tiene que usar el scroll para ver los ultimos mensajes impresos en el TextArea.


Gracias!

2
Wow se ve súper bien, al regresar a la casa lo pruebo!!!! Y lo reviso con cuidado para entenderlo bien. Luego hago la modificación que necesite o construyo el método a partir de este según lo que necesite y te lo comento. :) muchas gracias!

3
Hola! Gracias por la ayuda, me alegra que si se pueda hacer. Crees que en algún momento puedas darme un pequeño ejemplo de como hacerlo? Digo, escribir el código? Nunca he hecho eso que pones ah. Si crees que puedas ayudar, seria excelente y gracias de antemano.

Saludos y suerte!

4
Hola de nuevo amigos, ya he resuelto varios problemas que he presentado antes aca en los foros, algunos por mi cuenta y otros gracias a la ayuda de ustedes. Actualmente tengo una duda, quiero saber si puedo leer de un archivo de texto, valores especificos o algo que venga luego de una palabra. Para que me entiendan mejor, dare un ejemplo de como seria el archivo a leer:
Código: [Seleccionar]
Nombre: Jorge
Edad: 32

Lo que quiero que haga el programa, o el metodo, es que me lea ese archivo, (supongamos que se llama, prueba.txt) y me envie el nombre y la edad. o sea, que el programa solo me de la informacion luego de "Nombre:" (en este caso seria solo "Jorge") y la Informacion luego de "Edad:" (aca seria solo 32). Es posible hacer esto?

5
Gracias, si quieres, esta es la parte en donde esta el codigo para las preguntas y respuestas.

Código: [Seleccionar]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado,b,c,d;
    double suma;
    a = PuntLabel1.getText();
    c = RespuText.getText();
       
   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta,puntaje);
            jLabel3.setText(resultado);
        }
    if (a.length()>=0) {
            b = Respuesta(puntaje,puntaje2,pregunta,pregunta1);
            PuntLabel.setText(b);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }                                       

    /**
     * @param args the command line arguments
     */
    public String Pregunta(String pregunta, String puntaje){
    String a,b1,respuesta;
 
    double a1;
    b1 = "5 + 2";
    a = PuntLabel1.getText();
    a1 = Double.parseDouble(a);
   
    if (a1 ==0){
    b1 = "5 + 2 =";
    pregunta = "7";
       
    }
   
    if (a1==1) {
    b1 = "5 + 5 =";
    pregunta = "10";
       
   
    }
    if (a1==2) {
    b1 = "Tercera letra del abecedario";
    }
    if (a1==3) {
    b1 = "hola amigo";
    }
   respuesta = b1;
   return respuesta;
   

}
public String Respuesta (String puntaje, String puntaje2,String pregunta,String pregunta1) {
    String hh,hl;
    int hg;
    double hf = 0;
    hl = RespuText.getText();
    hg = Integer.parseInt(hl);
   
    if (pregunta.equals(hl)) {
    hf = Double.parseDouble(PuntLabel.getText()) + 1;
    }   
hh = Double.toString(hf);
return hh;
}

espero y te sirva. Aun no doy con la solucion :(

6
Ahora se me ocurrio hacer esto:

Código: [Seleccionar]
public class Pregunta1 extends javax.swing.JFrame {
String pregunta;
String puntaje;
String puntaje2;
String pregunta1;
    /**
     * Creates new form Pregunta1
     */
    public Pregunta1() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        LabelJuga = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        PuntLabel1 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        RespuText = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        PuntLabel = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Donkey de Oro");

        LabelJuga.setText(".");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel1.setText("Jugador:");

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel2.setText("Pregunta");

        PuntLabel1.setText("0");

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel3.setText("5 + 2 =");

        RespuText.setText(" ");

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel4.setText("Respuesta:");

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel5.setText("Puntaje");

        PuntLabel.setText("0");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(LabelJuga, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel2)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(PuntLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 0, Short.MAX_VALUE))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 69, Short.MAX_VALUE)
                        .addComponent(PuntLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(LabelJuga, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(PuntLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(26, 26, 26)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(jButton1)
                    .addComponent(PuntLabel))
                .addContainerGap(22, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado,b,c,d;
    double suma;
    a = PuntLabel1.getText();
    c = RespuText.getText();
       
   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta,puntaje);
            jLabel3.setText(resultado);
        }
    if (a.length()>=0) {
            b = Respuesta(puntaje,puntaje2,pregunta,pregunta1);
            PuntLabel.setText(b);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }                                       

    /**
     * @param args the command line arguments
     */
    public String Pregunta(String pregunta, String puntaje){
    String a,b1,respuesta;
 
    double a1;
    b1 = "5 + 2";
    a = PuntLabel1.getText();
    a1 = Double.parseDouble(a);
   
    if (a1 ==0){
    b1 = "5 + 2 =";
    pregunta = "7";
       
    }
   
    if (a1==1) {
    b1 = "5 + 5 =";
    pregunta = "10";
       
   
    }
    if (a1==2) {
    b1 = "Tercera letra del abecedario";
    }
    if (a1==3) {
    b1 = "hola amigo";
    }
   respuesta = b1;
   return respuesta;
   

}
public String Respuesta (String puntaje, String puntaje2,String pregunta,String pregunta1) {
    String hh,hl;
    int hg;
    double hf = 0;
    hl = RespuText.getText();
    hg = Integer.parseInt(hl);
   
    if (pregunta.equals(hl)) {
    hf = Double.parseDouble(PuntLabel.getText()) + 1;
    }   
hh = Double.toString(hf);
return hh;
}


    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Pregunta1().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    public static javax.swing.JLabel LabelJuga;
    public static javax.swing.JLabel PuntLabel;
    private javax.swing.JLabel PuntLabel1;
    private javax.swing.JTextField RespuText;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    // End of variables declaration                   
}


Y al introducir "7" como primera respuesta y pulsar el boton, obtengo el siguiente error:

Código: [Seleccionar]
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: " 7"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:481)
at java.lang.Integer.parseInt(Integer.java:527)
at eldonkey.Pregunta1.Respuesta(Pregunta1.java:202)
at eldonkey.Pregunta1.jButton1ActionPerformed(Pregunta1.java:155)
at eldonkey.Pregunta1.access$000(Pregunta1.java:13)
at eldonkey.Pregunta1$1.actionPerformed(Pregunta1.java:66)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

7
Tengo el siguiente codigo y tampoco me funciona, la pregunta si se cambia, pero la puntuacion no! :( como hago!?

Código: [Seleccionar]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado,b,puntaje1,c,d;
    double suma;
    a = PuntLabel1.getText();
    b = PuntLabel.getText();
    c = RespuText.getText();
    puntaje1 = "0";

   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta,puntaje);
            jLabel3.setText(resultado);
        }
    if (a.length()==0) {
            if(c.length()==7) {
                    puntaje1 = b + 1;
            }
            d = puntaje1;
            PuntLabel.setText(d);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }       

8
Hola amigos, he estado haciendo un peque#o juego para seguir practicando y aprendiendo con mi programacion en java.
El juego es una simple trivia, de preguntas y respuestas, en donde el programa muestra una pregunta y el usuario ingresa una respuesta.

Si la respuesta es correcta, el usuario gana un punto y se muestra una nueva pregunta.
Si no es correcta, el usuario no gana puntos, y se muestra una nueva pregunta.

Mi problema es el siguiente, Tengo una etiqueta que cambia la pregunta al momento de pulsar un boton de "ok" que esta en el JFrame, esto luego de introducir la respuesta, el punto es que no encuentro manera de hacer el sistema de puntos, o sea, de verificar si la respuesta es correcta o no. Les muestro el codigo : (una parte de el)

Código: [Seleccionar]
package eldonkey;

/**
 *
 * @author Marcos
 */
public class Pregunta1 extends javax.swing.JFrame {
String pregunta;
String puntaje;
    /**
     * Creates new form Pregunta1
     */
    public Pregunta1() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        LabelJuga = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        PuntLabel1 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        RespuText = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        PuntLabel = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Donkey de Oro");

        LabelJuga.setText(".");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel1.setText("Jugador:");

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel2.setText("Pregunta");

        PuntLabel1.setText("0");

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel3.setText("5 + 2 =");

        RespuText.setText(" ");

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel4.setText("Respuesta:");

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel5.setText("Puntaje");

        PuntLabel.setText("0");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(LabelJuga, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(PuntLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(30, 30, 30)
                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 69, Short.MAX_VALUE)
                .addComponent(PuntLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(29, 29, 29))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(LabelJuga, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(PuntLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(26, 26, 26)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(jButton1)
                    .addComponent(PuntLabel))
                .addContainerGap(22, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado;
    double suma;
    a = PuntLabel1.getText();
   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta, puntaje);
            jLabel3.setText(resultado);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }                                       

    /**
     * @param args the command line arguments
     */
    public String Pregunta(String pregunta, String puntaje){
    String a,b1,respuesta;
 
    double a1;
    b1 = "5 + 2";
    a = PuntLabel1.getText();
    a1 = Double.parseDouble(a);
   
    if (a1 ==0){
    b1 = "5 + 2 =";
       
    }
   
    if (a1==1) {
    b1 = "5 + 5 =";
       
   
    }
    if (a1==2) {
    b1 = "Tercera letra del abecedario";
    }
    if (a1==3) {
    b1 = "hola amigo";
    }
   respuesta = b1;
   return respuesta;
   

}

    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Pregunta1().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    public static javax.swing.JLabel LabelJuga;
    private javax.swing.JLabel PuntLabel;
    private javax.swing.JLabel PuntLabel1;
    private javax.swing.JTextField RespuText;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    // End of variables declaration                   
}

ese es el codigo, pero ahora quiero ahi mismo agregar un metodo que me permita segun la pregunta, ver si la respuesta es correcta y me agregue 1 punto por ejemplo:
Código: [Seleccionar]
public string Puntaje(String puntaje) {
String g1;
double g2;
g1 = PuntLabel1.getText();
g2 = Double.parseDouble(g1);

if (g2 == 0) { //Para que vea si es mi primera pregunta.
 b1 = RespuText.getText();
if (b1 == 7) {//el resultado de esa respuesta
String h1;
Double h2,h3;
h1 = PuntLabel.getText();
h2 = Double.parseDouble(h1);
h3 = h2 + 1;
PuntLabel.setText(h3);
}
else {
//Algun mensaje que diga, respuesta incorrecta. y continue el juego, no lo escribo
//por que no vale la pena escribir esto aca.}
}
}


Algo asi con cada Pregunta y respuesta! pero intente y el codigo quedaba bien, lo compilaba pero nunca me sumaba los puntos y mostraba si el resultado era correcto o no :( Ayuda!

9
Gracias Alex por tu respuesta. Yo también trate de usar el método repaint(), pero el resultado no es el que busco, lo que me genera es una nueva ventana idéntica a la anterior, pero sin mostrar los cuadros de texto y eliminando la ventana previa. Si deseas, puedo enviarte todo el proyecto (tanto el ejecutable, como el código) y me dices que te parece.

Gracias realmente por la ayuda, seguiré investigando para ver si logro resolver este problema, si encuentro solución te lo haré saber, de igual manera, si tu encuentras una, me gustaria que me la mencionadas, así aprendo un poco mas!
Saludos!

10
Use ese tipo de invocacion, ya que leyendo en internet observer este tipo de sistema, ahora, si usted conoce algo mas factible y simple me lo podria mencionar?

No estudio programacion, pero me gusta aprender poco a poco las cosas, este proyecto que voy haciendo me ha costado como no tienes idea! hahaha, algunas cosas las entiendo bien, otras no tanto, pero poco a poco voy aprendiendo mas. Soy estudiante de Biologia! hahaha, si puedes explicarme como harias tu para lograr lo mismo que yo logre en mi codigo, seria genial!. Ahora, lo que trate de decir es que, cuando mi programa grafica una ecuacion, perfecto, la dibuja, pero si en ese momento quiero graficar una nueva y cambio los valores de A, B y C para graficar una nueva ecuacion, el no me elimina la linea previamente dibujada, si no pinta por encima de esta la nueva linea. Quiero que el programa borre la linea previamente dibujada y dibuje una nueva. (al momento de darle click al boton "graficar", por ejemplo).

Lo otro que encontre es que al graficar una ecuacion, si minimizo la ventana donde estoy graficando, y la vuelvo a abrir, la linea que se dibujo, ya no esta! hahaha, si puedes ayudarme y posiblemente ense#arme, seria genial, gracias de antemano Alex.

11
Hola, he creado un graficador para ecuaciones de segundo grado, funciona bien! me grafica las ecuaciones, pero cuando ingreso los datos nuevamente, y doy click en "graficar" el programa no me elimina la grafica dibujada previamente, lo que hace es dibujar la nueva grafica encima de esta. Como hago para que al presionar el boton "graficar" me elimine la grafica previamente dibujada, y me dibuje la nueva. Aca dejo el codigo y un par de imagenes.

Codigo
Código: [Seleccionar]
package graficadora;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.event.ActionListener;
import graficadora.Graficadora;
/**
 *
 * @author Marcos
 */
public class Graficadora {

    public static plano plano;
   
    public void Grafico() {
       
        Ventana frame = new Ventana();
        frame.setBounds(300, 300, 510, 600);
        frame.setLayout(new BorderLayout());
        plano = new plano();
       
        JButton start = new JButton("Graficar");
        start.addActionListener(frame);
        start.addActionListener(frame);
        colo = new javax.swing.JTextField();
        colo2 = new javax.swing.JTextField();
        colo3 = new javax.swing.JTextField();
        colo.setBounds(10,10,30,30);
        colo2.setBounds(60,10,30,30);
        colo3.setBounds(110,10,30,30);
        aLabel = new javax.swing.JLabel("A");
        bLabel = new javax.swing.JLabel("B");
        cLabel = new javax.swing.JLabel("C");
        aLabel.setBounds(43,13,20,20);
        bLabel.setBounds(93,13,20,20);
        cLabel.setBounds(143,13,20,20);
        aLabel.setFont(new java.awt.Font("Arial", 1, 13));
        bLabel.setFont(new java.awt.Font("Arial", 1, 13));
        cLabel.setFont(new java.awt.Font("Arial", 1, 13));
       
        frame.add(colo);
        frame.add(colo2);
        frame.add(colo3);
        frame.add(aLabel);
        frame.add(bLabel);
        frame.add(cLabel);
       
        frame.add( plano, BorderLayout.CENTER);
        frame.add(start, BorderLayout.SOUTH);
        frame.setVisible( true );

    }
   
public class Ventana extends JFrame implements ActionListener{
    @Override
public void actionPerformed(ActionEvent e) {
String a4;
    a4 = colo.getText();
String b4;
    b4 = colo2.getText();
String c4;
    c4 = colo3.getText();
   
double a5,b5,c5;
a5 = Double.parseDouble(a4);
b5 = Double.parseDouble(a4);
c5 = Double.parseDouble(c4);

Graficadora.plano.paintSQRFunc(Graficadora.plano.getGraphics(),a5,b5,c5,-200,200);
}
   
}
public javax.swing.JTextField colo;
public javax.swing.JTextField colo2;
public javax.swing.JTextField colo3;
public javax.swing.JLabel aLabel;
public javax.swing.JLabel bLabel;
public javax.swing.JLabel cLabel;

}

Código: [Seleccionar]
package graficadora;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
/**
 *
 * @author Marcos
 */
public class plano extends JPanel {
   
    public plano() {
    init();
    }

public void init() {
this.setBorder(BorderFactory.createLineBorder(Color.black));
}
@Override
public void paintComponent( Graphics g ) {
            super.paintComponent(g);
            g.setColor(Color.red);
            g.drawLine(0, this.getHeight()/2, this.getWidth(), this.getHeight()/2);
            g.drawLine(this.getWidth()/2, 0,this.getWidth()/2 , this.getHeight());
    }
   
public void paintSQRFunc( Graphics g, double x2mult,
        double x1mult,double cons, double x1,double x2)
{
    for(double i=x1;i<x2;i++)
    {
        double y = ((double)Math.pow(i,2)*x2mult)+i*x1mult+cons;
        double xp = i+1;
        double yp = ((double)Math.pow(xp,2)*x2mult)+xp*x1mult+cons;
        g.drawLine((int)coord_x(i), (int)coord_y(y), (int)coord_x(xp), (int)coord_y(yp));
        }
}
private double coord_x(double x)
    {
    double real_x = x+this.getWidth()/2;
    return real_x;
    }
private double coord_y(double y)
    {
        double real_y = -y+this.getHeight()/2;
        return (real_y);

        }
}

Este codigo pertenece a un programa que he hecho, poco a poco lo mejoro! pero si me pueden ayudar, seria genial. Ya no se que hacer :( y soy nuevo en esto. Gracias!, ahora un par de imagenes



Ahora, luego de cambiar los valores y graficar nuevamente:



Gracias si me pueden ayudar y explicar.

Nota: Me di cuenta que si minimizo la ventana donde se dibuja mi grafica y la vuelvo a abrir, esta borra la linea dibujada previamente. Por que sucede esto?

12
Gracias Alex, ahora tratare de resolver eso que me dices, poner en esa clase, todos los mensajes necesarios! :) espero y no cometa errores :D

13
Muchas Gracias Alex, tu informacion me va de maravilla. Tratare ahora de entenderla lo mejor que puedo y tratar de usarla lo mejor que pueda. GRACIAS

14
Creo que lo hice por clases :D el programa funciona muy bien! Revisa los codigos :D

Código: [Seleccionar]
package clasessegundo;

/**
 *
 * @author Miguel
 */
public class ClasesSegundo {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        MensajeBienvenida miMensajeBienvenida = new MensajeBienvenida();
            miMensajeBienvenida.mostrarMensaje();
        ecuSegundo miecuSegundo = new ecuSegundo();
            miecuSegundo.ecuSegundoa();
               
   
    }
   
}

ahora las clases:
Código: [Seleccionar]
package clasessegundo;

/**
 *
 * @author Miguel
 */
import javax.swing.JOptionPane;

public class MensajeBienvenida {
   
    public void mostrarMensaje()
    {
    JOptionPane.showMessageDialog(null, "Bienvenido, use esta aplicacion para resolver ecuaciones\nde segundo grado 'AX^2 + BX + C = 0', solo necesita especificar los valores de:\n A B y C\n**Hecho por Miguel**","Ecuaciones De Segundo Grado",JOptionPane.INFORMATION_MESSAGE);
}
    }

Código: [Seleccionar]
package clasessegundo;

import javax.swing.JOptionPane;

/**
 *
 * @author Miguel
 */
public class ecuSegundo {
    public void ecuSegundoa()
    {
        String primerNumero, segundoNumero, tercerNumero, error;
double a1, b1, c1, ecuacion1=0, ecuacion3=0, ecuacion2=0, f1=0, g1=0, h1=0, i1=0, j1=0, k1=0, suma, op=0;
int opcionUsuario = 0;
suma=0;
op=0;
        do{

//JOptionPane.showMessageDialog(null, "Bienvenido, use esta aplicacion para resolver ecuaciones\nde segundo grado 'AX^2 + BX + C = 0', solo necesita especificar los valores de:\n A B y C\n**Hecho por Miguel**","Ecuaciones De Segundo Grado",JOptionPane.INFORMATION_MESSAGE);
     
primerNumero = JOptionPane.showInputDialog ( "Asigne el valor de A:" );//Se define el valor de a1
a1 = Integer.parseInt( primerNumero );//Transforma el string primer numero

segundoNumero = JOptionPane.showInputDialog ( "Asigne el valor de B:" );//Define el valor de b1
b1 = Integer.parseInt( segundoNumero );//Transforma el string segundoNumero

tercerNumero = JOptionPane.showInputDialog ( "Asigne el valor de C:" );//Define el valor de c1
c1 = Integer.parseInt( tercerNumero );//Lo mismo con c1

ecuacion1 = ( 4 * a1 * c1 );
ecuacion3 = ( ( b1 * b1 ) - ( ecuacion1 ) );
        ecuacion2 = ( ( 2 ) * ( a1 ) );
if( ecuacion2==0 )
{

error = JOptionPane.showInputDialog( "\nNo se puede dividir entre 0, Repetir 1-Si 2-No:");//mensaje de error cuando el dividendo es = a 0
op = Integer.parseInt( error );//Regresar a el inicio.
}
else{
if( ecuacion3<0) {

i1 = Math.sqrt( ( -1 ) * ( ecuacion3 ) );//solucion a y para numero complejo
j1 = ( ( -b1 ) / ecuacion2 );//Solucion a x para numero complejo
k1 = i1/ecuacion2;//Esto no deberia ir, igual lo tendremos presente.

JOptionPane.showMessageDialog(null,"X1: "+j1+" + "+i1+"i"+"\nX2: "+j1+" - "+i1+"i","resultado numero complejo",JOptionPane.INFORMATION_MESSAGE);
//error = JOptionPane.showInputDialog( "\nDesea hacer otra? 1-Si 2-No:" );
//op = Integer.parseInt( error );
opcionUsuario = eleccionUsuario();
if (opcionUsuario ==0) {op=1;} else {System.exit(0);}
}
else{
h1 = Math.sqrt( ecuacion3 );
f1 = ( ( ( -b1 ) + ( h1 ) ) / ecuacion2 );
g1 = ( ( ( -b1 ) - ( h1 ) ) / ecuacion2 );

JOptionPane.showMessageDialog(null,"Resultado 1: "+g1+"\nResultado 2: "+f1,"resultado",JOptionPane.INFORMATION_MESSAGE);

opcionUsuario = eleccionUsuario();
if (opcionUsuario ==0) {op=1;} else {System.exit(0);}
}
}
}
while(op==1);
            System.exit(0);
        }
public static int eleccionUsuario() {
        Object[] options = { "Continuar", "Salir" };
return JOptionPane.showOptionDialog(null, "¿Desea continuar o salir?", "Elección de opción", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);

}
   
}

Que tal? :D

15
Hola,  necesito ayuda resolviendo el siguiente problema.

Imaginen que tengo el siguiente codigo en mi programa, con variables double.
Código: [Seleccionar]
numeroUno = JOptionPane.showInputDialog ( "Asignele un valor numerico a A:" );
a1 = Integer.parseInt( numeroUno );
El programa funciona de matavilla, se pude introducir el valor de A sin ningun problema, el programa funciona como yo quiero que lo haga, pero ahora... si yo introduzco un valor alfanumerico o un signo que NO sea un numero, o simplemente no introduzco ningun valor, el programa se cierra, mi duda es la siguiente:
*Como puedo hacer que el programa reconozca que el valor que se introdujo no era el adecuado,m y al hacer esto salga un aviso que diga "El valor que usted introdujo era incorrecto, intentelo de nuevo" y el programa no se cierre, si no regrese a la ventana en donde se introduce el valor de A.
Espero haberme explicado lo suficientemente bien. Gracias.

16
Muchas gracias Alex, me tomare un tiempo para leer lo que me enviaste, y si lo entiendo, tratare de que mi prigrama tenga diversas clases :) y te lo muestro.

Suerte!!!

17
Este es mi nuevo codigo, he arreglado un pequeno error que tenia al momento de la resolucion de las raices negativas. Que tal esta ahora? Siguo sin poder agregar los botones :(

Código: [Seleccionar]
import javax.swing.JOptionPane;
public class SegundoGrado
{
public static void main( String[] args )
{
String primerNumero, segundoNumero, tercerNumero, error;
double a1, b1, c1, ecuacion1=0, ecuacion3=0, ecuacion2=0, f1=0, g1=0, h1=0, i1=0, j1=0, k1=0, suma, op=0;
suma=0;
op=0;
do{

JOptionPane.showMessageDialog(null, "Bienvenido, use esta aplicacion para resolver ecuaciones\nde segundo grado 'AX^2 + BX + C = 0', solo necesita especificar los valores de:\n A B y C\n**Hecho por Miguel**","Ecuaciones De Segundo Grado",JOptionPane.INFORMATION_MESSAGE);
     
primerNumero = JOptionPane.showInputDialog ( "Asigne el valor de A:" );//Se define el valor de a1
a1 = Integer.parseInt( primerNumero );//Transforma el string primer numero

segundoNumero = JOptionPane.showInputDialog ( "Asigne el valor de B:" );//Define el valor de b1
b1 = Integer.parseInt( segundoNumero );//Transforma el string segundoNumero

tercerNumero = JOptionPane.showInputDialog ( "Asigne el valor de C:" );//Define el valor de c1
c1 = Integer.parseInt( tercerNumero );//Lo mismo con c1

ecuacion1 = ( 4 * a1 * c1 );
ecuacion3 = ( ( b1 * b1 ) - ( ecuacion1 ) );
        ecuacion2 = ( ( 2 ) * ( a1 ) );
if( ecuacion2==0 )
{

error = JOptionPane.showInputDialog( "\nNo se puede dividir entre 0, Repetir 1-Si 2-No:");//mensaje de error cuando el dividendo es = a 0
op = Integer.parseInt( error );//Regresar a el inicio.
}
else{
if( ecuacion3<0) {

i1 = Math.sqrt( ( -1 ) * ( ecuacion3 ) );//solucion a y para numero complejo
j1 = ( ( -b1 ) / ecuacion2 );//Solucion a x para numero complejo
k1 = i1/ecuacion2;//Esto no deberia ir

JOptionPane.showMessageDialog(null,"X1: "+j1+" + "+i1+"i","resultado numero complejo",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"X2: "+j1+" - "+i1+"i","resultado numero complejo",JOptionPane.INFORMATION_MESSAGE);
error = JOptionPane.showInputDialog( "\nDesea hacer otra? 1-Si 2-No:" );
op = Integer.parseInt( error );
}
else{
h1 = Math.sqrt( ecuacion3 );
f1 = ( ( ( -b1 ) + ( h1 ) ) / ecuacion2 );
g1 = ( ( ( -b1 ) - ( h1 ) ) / ecuacion2 );

JOptionPane.showMessageDialog(null,"Resultado 1:"+f1,"resultado",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"Resultado 2:"+g1,"resultado",JOptionPane.INFORMATION_MESSAGE);
error = JOptionPane.showInputDialog( "\nDesea hacer otra? 1-Si 2-No:" );
op = Integer.parseInt( error );
}
}
}
while(op==1);
            System.exit(0);
        }
}

18
Por otro lado, agregue los botones que me dices, efectivamente salen! Pero no me muestran las opciones de "continuar" y "salir", me sale es un recuadro con un mensaje de "continuar" y salen las opciones "yes" o "no" me gustaria hacer que esos botones no dijesen eso, si no lo que yo quiera, "continuar" y "salir". Tambien, agregarle la informacion necesaria para que al presionar "continuar (o sea, "yes") este boton me regrese al inicio del programa, como lo hace la opcion 1 que defini previamente.

En este caso no puedo poner esto

Código: [Seleccionar]
error =  JOptionPane.showConfirmDialog(null, "Continuar", "Salir", JOptionPane.YES_NO_OPTION);
op = Integer.parseInt( error );

ya que mi variable "error" no va a reconocer el metodo de entrada, o sea el click, por lo tanto la variale op tampoco v a a reconocer la seleccion de un boton u otro. Por eso, necesito saber como definir las tareas de cada uno. De antemano, GRACIAS! espero haberme explicado bien! :)

Saludos

19
Hola, gracias por tomarte el tiempo de responder! :)

Ahora, apenas pueda tratare de hacer lo que me dices, y ver si me funciona y lo entiendo. hay algo que si no entiendo del todo, tu me dices que no trabajo con clases, que tengo solo una clase! Esto no lo entiendo muy bien, con mi codigo me podrias dar un ejemplo de como hacer lo de tener varias clases? y explicarmelo?

Ayer estuve trabajando un poco en la parte de resolucion de ecuaciones de segundo grado, cuando las raices son negativas, hasta ahora este es el codigo que tengo. :)

Código: [Seleccionar]
import javax.swing.JOptionPane;
public class SegundoGrado
{
public static void main( String[] args )
{
String primerNumero, segundoNumero, tercerNumero, error;
double a1, b1, c1, ecuacion1=0, ecuacion3=0, ecuacion2=0, f1=0, g1=0, h1=0, i1=0, j1=0, k1=0, suma, op=0;
suma=0;
op=0;
do{

JOptionPane.showMessageDialog(null, "Bienvenido, use esta aplicacion para resolver ecuaciones\nde segundo grado 'AX^2 + BX + C = 0', solo necesita especificar los valores de:\n A B y C\n**Hecho por Miguel**","Ecuaciones De Segundo Grado",JOptionPane.INFORMATION_MESSAGE);
     
primerNumero = JOptionPane.showInputDialog ( "Asigne el valor de A:" );//Se define el valor de a1
a1 = Integer.parseInt( primerNumero );//Transforma el string primer numero

segundoNumero = JOptionPane.showInputDialog ( "Asigne el valor de B:" );//Define el valor de b1
b1 = Integer.parseInt( segundoNumero );//Transforma el string segundoNumero

tercerNumero = JOptionPane.showInputDialog ( "Asigne el valor de C:" );//Define el valor de c1
c1 = Integer.parseInt( tercerNumero );//Lo mismo con c1

ecuacion1 = ( 4 * a1 * c1 );
ecuacion3 = ( ( b1 * b1 ) - ( ecuacion1 ) );
        ecuacion2 = ( ( 2 ) * ( a1 ) );
if( ecuacion2==0 )
{

error = JOptionPane.showInputDialog( "\nNo se puede dividir entre 0, Repetir 1-Si 2-No:");
op = Integer.parseInt( error );
}
else{
if( ecuacion3<0) {

i1 = Math.sqrt( ( -1 ) * ( ecuacion3 ) );
j1 = ( ( -b1 ) / ecuacion2 );
k1 = i1/ecuacion2;

JOptionPane.showMessageDialog(null,"X1: "+j1+"  Y1: "+k1+"i","resultado numero complejo",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"X2: "+j1+"  Y2: -"+k1+"i","resultado numero complejo",JOptionPane.INFORMATION_MESSAGE);
error = JOptionPane.showInputDialog( "\nDesea hacer otra? 1-Si 2-No:" );
op = Integer.parseInt( error );
}
else{
h1 = Math.sqrt( ecuacion3 );
f1 = ( ( ( -b1 ) + ( h1 ) ) / ecuacion2 );
g1 = ( ( ( -b1 ) - ( h1 ) ) / ecuacion2 );

JOptionPane.showMessageDialog(null,"Resultado 1:"+f1,"resultado",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"Resultado 2:"+g1,"resultado",JOptionPane.INFORMATION_MESSAGE);
error = JOptionPane.showInputDialog( "\nDesea hacer otra? 1-Si 2-No:" );
op = Integer.parseInt( error );
}
}
}
while(op==1);
}
}

20
Hola, soy nuevo tanto en el mundo de la programacion como en este foro. Poco a poco he creado algunos programas, hoy hice uno que resolviese ecuaciones de segundo grado, funciona realmente bien y resuelve la mayoria de las ecuaciones, mientras no haya un numero imaginario.

El codigo es el siguiente:

Código: [Seleccionar]
import javax.swing.JOptionPane;
public class SegundoGrado
{
public static void main( String[] args )
{
String primerNumero, segundoNumero, tercerNumero, error;
double a1, b1, c1, ecuacion1=0, ecuacion3=0, ecuacion2=0, f1=0, g1=0, h1=0, suma, op=0;
suma=0;
op=0;
do{

JOptionPane.showMessageDialog(null, "Bienvenido, use esta aplicacion para resolver ecuaciones\nde segundo grado, solo necesita especificar los valores de:\n A B y C\n**Hecho por Miguel**" );

primerNumero = JOptionPane.showInputDialog ( "Asigne el valor de A:" );//Se define el valor de a1
a1 = Integer.parseInt( primerNumero );//Transforma el string primer numero

segundoNumero = JOptionPane.showInputDialog ( "Asigne el valor de B:" );//Define el valor de b1
b1 = Integer.parseInt( segundoNumero );//Transforma el string segundoNumero

tercerNumero = JOptionPane.showInputDialog ( "Asigne el valor de C:" );//Define el valor de c1
c1 = Integer.parseInt( tercerNumero );//Lo mismo con c1

ecuacion1 = ( 4 * a1 * c1 );
ecuacion3 = ( ( b1 * b1 ) - ( ecuacion1 ) );
        ecuacion2 = ( ( 2 ) * ( a1 ) );
if( ecuacion2==0 )
{

error = JOptionPane.showInputDialog( "\nNo se puede dividir entre 0, hacer otra ecuacion? 1-Si 2-No:" );
op = Integer.parseInt( error );
}
else{
if( ecuacion3<0) {
error = JOptionPane.showInputDialog( "\nPor los momentos no se puede resolver raices con numeros negativos., desea hacer otra ecuacion? 1-Si 2-No:" );
op = Integer.parseInt( error );
}
else{
h1 = Math.sqrt( ecuacion3 );
f1 = ( ( ( -b1 ) + ( h1 ) ) / ecuacion2 );
g1 = ( ( ( -b1 ) - ( h1 ) ) / ecuacion2 );

JOptionPane.showMessageDialog(null,"Resultado 1:"+f1,"resultado",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"Resultado 2:"+g1,"resultado",JOptionPane.INFORMATION_MESSAGE);
error = JOptionPane.showInputDialog( "\nDesea hacer otra? 1-Si 2-No:" );
op = Integer.parseInt( error );
}
}
}
while(op==1);
}
}

Ahora, me gustaria que en la ventana final, aparecieran dos botones, uno que sea para comenzar de nuevo (como elegir la opcion 1 que puse ahi) y otro para cerrar el programa, como puedo hacer esto?

Por cierto, si no es mucha molestia, decirme que tal me quedo el codigo! :) Gracias!!

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".