Foro Oficial de Java

hola, tengo una problema con este codigo, solo me muestra el mensaje "SOLUCION INDETERMINADA" en ningun caso puedo hacer que el mensaje "solucion imposible" se muestre. debo estar haciendo algo mal pero no se que, estoy usando el jdeveloper.




double a;
double b;
double x;
a=Double.valueOf(txt_a.getText()).doubleValue();
b=Double.valueOf(txt_a.getText()).doubleValue();


if(a!=0)
{
x=-b/a;
}
else
{
if (b!=0)
{
JOptionPane.showMessageDialog(null,"SOLUCION IMPOSIBLE");
}

else
{
JOptionPane.showMessageDialog(null,"SOLUCION INDETERMINADA");
}
}

}
}
 
Parece que esa conversión no está funcionando bien. Lo puede comprobar imprimiendo los valores de las variables en consola luego de que se les asigna el valor de los campos de texto.

Te recomiendo usar el método ParseDouble

public static double parseDouble(String s) throws NumberFormatException

Creo que sería algo como

a=Double.ParseDouble(txt_a.getText());

lo mismo para el resto de variables, haz la prueba.
 
sirguille dijo:
hola, tengo una problema con este codigo, solo me muestra el mensaje "SOLUCION INDETERMINADA" en ningun caso puedo hacer que el mensaje "solucion imposible" se muestre. debo estar haciendo algo mal pero no se que, estoy usando el jdeveloper.




double a;
double b;
double x;
a=Double.valueOf(txt_a.getText()).doubleValue();
b=Double.valueOf(txt_a.getText()).doubleValue();


if(a!=0)
{
x=-b/a;
}
else
{
if (b!=0)
{
JOptionPane.showMessageDialog(null,"SOLUCION IMPOSIBLE");
}

else
{
JOptionPane.showMessageDialog(null,"SOLUCION INDETERMINADA");
}
}

}
}
No deberia haber problemas, el algoritmo esta bien, ademas, si esta utilizando JDK 5 o mayor, puede omitir el metodo "doubleValue()".

Deberia hacer lo que le dijó Oesosto: "imprimir el valor de las variables despues de asignarle los valores".

Si quiere pruebe el algoritmo con valores directos, asi:

PHP:
        a = Double.valueOf(0);
        b = Double.valueOf(1);        
        
        if(a != 0){
            x=-b/a;
        } else if(b != 0){
            System.out.println ("\n SOLUCION IMPOSIBLE");
        } else{
            System.out.println ("\n SOLUCION INDETERMINADA");
        }
-
 
Oesoto dijo:
Parece que esa conversión no está funcionando bien. Lo puede comprobar imprimiendo los valores de las variables en consola luego de que se les asigna el valor de los campos de texto.

Te recomiendo usar el método ParseDouble

public static double parseDouble(String s) throws NumberFormatException

Creo que sería algo como

a=Double.ParseDouble(txt_a.getText());

lo mismo para el resto de variables, haz la prueba.
probe cambiar a=Double.parseDouble(txt_a.getText()); y con el b tambien, y sí funciono.gracias.aunque me quedo la duda que tiene de especial el parsedouble
 
No tiene nada de especial si no que es un método hecho para lograr exactamente lo que usted quería hacer con los parametros que usted tenía disponibles.
 
sirguille dijo:
probe cambiar a=Double.parseDouble(txt_a.getText()); y con el b tambien, y sí funciono.gracias.aunque me quedo la duda que tiene de especial el parsedouble
La diferencia radica en que el metodo "parseDouble(String s)" retorna una variable de tipo "double" (primitiva) inicializada con valor del String pasado como parametro, y por su parte el metodo "valueOf (String s)" retorna un objeto de la clase Double que representa el String pasado como argumento. Pero igual desde Java 5 hay conversion automatica entre primitivas y objetos, asi que no debe haber problemas.

Me extraña que a usted le no le haya funcionado con el metodo valueOf(String s), ya que yo mismo probé su codigo con los dos metodos y ambos funcionan correctamente.

-
 
que mas laneros, una preguntica, alguien sabe como autoajustar el tamanho de un jlabel, mejor dicho, en el momento de crear el label le paso el string para darle el texto pero si el texto es muy largo pues no lo muestra todo y quiero que si lo haga
gracias
 
Alli hay un problema porque a veces algunos metodos como el resize() no se respetan, es decir, que aunque los llames no siempre se ejecutan o no como uno esperaria
 
Otra preguntica parceros, es que me toca dibujar uno grafo y correr el algoritmo de sink, necesito pintarlos y unirlos habia pensado en un layout circular pero no se como implementarlo, alguien me puede colaborar?
 
Usa Applet

WhItEPoWeR dijo:
Otra preguntica parceros, es que me toca dibujar uno grafo y correr el algoritmo de sink, necesito pintarlos y unirlos habia pensado en un layout circular pero no se como implementarlo, alguien me puede colaborar?

Pos lo primero que se me viene a la mente y creo que sería una buena alternativa, es que no uses swing para esto de los grafos, se te van a hacer bolas de codigo y quizas no llegues a implementarlo, para dibujar sería mejor que uses Applet, hay vas a poder usar drawLine(), drawCircle(), drawOval(), etc.. que te ayudarian mejor, te lo digo por que me toco dibujar un grafo una vez y lo quize hacer por swing (sigue en la papelera el codigo) pero Applet es una mejor opción, ademas recuerda que el Applet ya hecho lo puedes agregar a un JFrame o a un JPanel si deseas y correrlo en una aplicación comun y silvestre...

PD. Aquí te dejo un link de Funciones Gráficas en Applet's
http://www.sc.ehu.es/sbweb/fisica/cursoJava/applets/grafico/funciones.htm
 
WhItEPoWeR dijo:
que mas laneros, una preguntica, alguien sabe como autoajustar el tamanho de un jlabel, mejor dicho, en el momento de crear el label le paso el string para darle el texto pero si el texto es muy largo pues no lo muestra todo y quiero que si lo haga
gracias
Eso es cuestion de utilizar un controlador de distribucion de componenetes (layout manager) adecuado, por ejemplo podria ver el nuevo layout del paquete swing "javax.swing.GroupLayout".

-
 
hola laneroprogramadores
soy nuevo en java y les cuento que estoy usando el ambiente eclipse 3.2.1 les queria pedir un favor para ver si me facilitaban un curso o un manual en linea de eclipse o de como programar esque estoy un poco perdido y nesesito ayuda
gracias y suerte
 
mandeme un mp, yo tengo un libro de eclipse que le puede servir

EDIT:
una pergunta, desde la consola como puedo hacer que apenas presione una tecla la capture y no esperar a que presione ENTER?

que pena oesoto, ahora comienzo a editarlos
 
hola javalaneros
nesesito que me hagan un fa y es que me pasaran un vector y una matris cualquiera en java eclipse que la nesesito para un examen mañana..
prometo k++
suerte y porfa ayudenme
 
hola javalaneros
nesesito que me hagan un fa y es que me pasaran un vector y una matris cualquiera en java eclipse que la nesesito para un examen mañana..
prometo k++
suerte y porfa ayudenme
No te entiendo... necesitas un vector lleno con cualquier cosa y una matriz llena con cualquier cosa o que??
Especifica mas o menos para poderte ayudar
Salu2:p
 
que tal otra vez yo con mis preguntas tengo el siguiente codigo para imprimirlo en consola me esta funcionando bien el problema es cuando lo hago grafico

public class Controlador extends Thread{

public void run(){
while(true){
SimpleDateFormat x= new SimpleDateFormat("h:mm:ss a");
Date today= new Date();
String resp= new String(x.format(today.getTime()));
if(resp.equals("8:47:30 PM"))
System.out.println("es la otra otra hora");
try {
sleep(700);
}
catch(InterruptedException e) {
return;
}
}
}
}

///////esto es lo que estoy tratando de hacer
public class Window extends javax.swing.JFrame implements Runnable{


public Window() {
initComponents();
}


private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);

jMenu1.setText("menu");
jMenuItem1.setText("Item");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});

jMenu1.add(jMenuItem1);

jMenuBar1.add(jMenu1);

setJMenuBar(jMenuBar1);

org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 510, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(19, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap(12, Short.MAX_VALUE)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 438, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(22, 22, 22))
);
pack();
}

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
this.run();
}

public void run(){
while(true){
SimpleDateFormat x= new SimpleDateFormat("h:mm:ss a");
Date today= new Date();
String resp= new String(x.format(today.getTime()));

el problema esta aqui que no puedo poner el metodo sleep(700) entonces se me come toda la maquina
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Window().setVisible(true);
}
});
}

}
 

Los últimos temas