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.


Temas - 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
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?

3
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!

4
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?

5
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.

6
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".