Bienvenido: ( Identificarse | Registrarse )      
Foros de Trucos Windows
1 2 3 4 
Closed TopicStart new topicStart Poll

Outline · [ Estándar ] · Lineal+

> error en el codigo de java...., principiante T.T

rob1104
post Apr 16 2006, 12:17 AM
Publicado: #31


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



La MVJ ya la debes tener instalada, de hecho te puedo decir que es casi impresindible para navegar en internet, para saber exactamente si etsa instalada abre una ventata de simbolo de sistema y teclea
CODE
java -version

si marca que no se reconoce el comando la descargas gratuitamente de
JAVA

Lo de setBounds te explique que eran el equivalente de visual basic de (Top,Left,Width,Height) equivalen a esas propiedades.

Respecto a lo de borderlayout sip, norte centro y sur salen pegadas a la izquierda porque solo se toma en cuenta lo vertical, si quieres que se centren tambien horizaontal tienes que invocar al metodo setHorizontalAlignment, aniade estas lineas
CODE
etiqueta1.setHorizontalAlignment(SwingConstants.CENTER);
etiqueta3.setHorizontalAlignment(SwingConstants.CENTER);
etiqueta5.setHorizontalAlignment(SwingConstants.CENTER);
justo debajo de estas
QUOTE
ventana1.add(etiqueta1,BorderLayout.NORTH);
ventana1.add(etiqueta2,BorderLayout.SOUTH);
ventana1.add(etiqueta3,BorderLayout.EAST);
ventana1.add(etiqueta4,BorderLayout.WEST);
ventana1.add(etiqueta5,BorderLayout.CENTER);
que estan en Ventana.java

Un saludo bye1.gif


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 17 2006, 04:38 PM
Publicado: #32


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



robbie una preguntita media sonsa pero no entiendo...
para que se usa el JScrollPane ?

la unica diferencia que encontre es que le pone borde al JTextArea
para que otras cosas sirve ??
me dicuenta que tambien el scrollpane le define el bounds ... y tambien al agregar el scrollpane ya no necesito poner getcontentpane al textarea....


//txttotal
txttotal = new JTextArea();
txttotal.setFont(new Font("monospaced", 0, 12));


//scpscroll
scpscroll = new JScrollPane(txttotal);
scpscroll.setBounds(75, 70, 70, 23);
getContentPane().add(scpscroll);


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 17 2006, 05:05 PM
Publicado: #33


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



otra cosita XD ...
no entendi para que se usa el parsedouble en el programa1


//entrada de datos
horastrab = Double.parseDouble(txthoras.getText());
tarifahor = Double.parseDouble(txttarifa.getText());

y el gettext es para que extraiga esos datos ?


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 17 2006, 05:44 PM
Publicado: #34


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



de nuevo .... !!!
XD
ya hice mi primer programa XD... por que el otro era copiado del libro .. este lo hice con algunas miraditas al otro code ... pero no se por que me sale feo el txt total... a ver si me das una manito en eso... es cosa de la interfaz grafica

y esta ves sin errores ortograficos XD clap.gif


CODE
/*
*Minic (MINI CALCULADORA)
*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Minic extends JFrame implements ActionListener
{
 //declaracion de variables
 
 JLabel lbl1;
 JLabel lbl2;
 JLabel lbltotal;
 JTextField txt1;
 JTextField txt2;
 JTextArea txttotal;
 JButton btnsuma;
 JButton btnresta;
 JButton btndivi;
 JButton btnmulti;
 JScrollPane scpscroll;
 
 //Interfaz grafica GUI
 
 public Minic()
 {
  setSize(300,170);
  setTitle("Mini Calculadora");
  setResizable(false);
  setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 
  getContentPane().setLayout(null);
 
  //lbl1
  lbl1 = new JLabel("Number I");
  lbl1.setBounds(15,15,55,23);
  getContentPane().add(lbl1);
 
  //lbl2
  lbl2 = new JLabel("Number II");
  lbl2.setBounds(15,39,55,23);
  getContentPane().add(lbl2);
 
  //lbltotal
  lbltotal = new JLabel("Total");
  lbltotal.setBounds(15,70,55,23);
  getContentPane().add(lbltotal);
 
  //txt1
  txt1 = new JTextField();
  txt1.setBounds(75,15,70,23);
  getContentPane().add(txt1);
 
  //txt2
  txt2 = new JTextField();
  txt2.setBounds(75,39,70,23);
  getContentPane().add(txt2);
 
  //txttotal
  txttotal = new JTextArea();
  txttotal.setFont(new Font("monospaced", 0, 12));
  txttotal.setBounds(75,70,70,25);
  getContentPane().add(txttotal);
 
  //scpscroll
      scpscroll = new JScrollPane(txttotal);
      scpscroll.setBounds(75, 70, 65, 20);
      getContentPane().add(scpscroll);  
     
 
  //btn suma
      btnsuma = new JButton("+");
      btnsuma.setBounds(170,19,42,23);
      btnsuma.addActionListener(this);
      getContentPane().add(btnsuma);
     
       //btn resta
      btnresta = new JButton("-");
      btnresta.setBounds(215,19,42,23);
      btnresta.addActionListener(this);
      getContentPane().add(btnresta);
     
      //btnmulti
      btnmulti = new JButton("x");
      btnmulti.setBounds(170,45,42,23);
      btnmulti.addActionListener(this);
      getContentPane().add(btnmulti);
     
      //btndivi
      btndivi = new JButton("/");
      btndivi.setBounds(215,45,42,23);
      btndivi.addActionListener(this);
      getContentPane().add(btndivi);
 
 }

//eventos actionevent
public void actionPerformed(ActionEvent e)
{
 if(e.getSource() == btnsuma){
 
 
 //declaracion de variables
 double num1, num2;
 double suma;
 
 //entrada de datos
 num1 = Double.parseDouble(txt1.getText());
 num2 = Double.parseDouble(txt2.getText());
 
 //proceso de datos
 suma = num1 + num2;
 
 //imprime
 txttotal.append(suma + "\n");
 }
 
 if(e.getSource() == btnresta){
 
 
 //declaracion de variables
 double num1, num2;
 double resta;
 
 //entrada de datos
 num1 = Double.parseDouble(txt1.getText());
 num2 = Double.parseDouble(txt2.getText());
 
 //proceso
 resta = num1 - num2;
 
 //print
 txttotal.append(resta + "\n");
 }
 
 if(e.getSource() == btnmulti){
 
 
 //declaracion de variables
 double num1, num2;
 double multi;
 
 //entrada de datos
 num1 = Double.parseDouble(txt1.getText());
 num2 = Double.parseDouble(txt2.getText());
 
 //proceso
 multi = num1 * num2;
 
 //print
 txttotal.append(multi + "\n");
 }
 
 if(e.getSource() == btndivi){
 
 
 //declaracion de variables
 double num1, num2;
 double divi;
 
 //entrada de datos
 num1 = Double.parseDouble(txt1.getText());
 num2 = Double.parseDouble(txt2.getText());
 
 //proceso
 divi = num1 / num2;
 
 //print
 txttotal.append(divi + "\n");
 }

//Metodo principal
  public static void main(String args[])
  {
      new Minic().setVisible(true);
  }
}

}
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Apr 17 2006, 06:42 PM
Publicado: #35


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



Excelente, muy bien, te felicito por el programa respecto a tu duda, te recomiendo que hagas lo sig:

aniade esta linea antes de que imprimas el resultado en todos los if

CODE
//borra
txttotal.setText("");


y quita el \n de los 4 append, y veras que quedara mejor

por ejemplo del de suma
CODE
//borra
           txttotal.setText("");
           //imprime
           txttotal.append(suma+"");


y asi sucesivamente.

Ahora para darle una apariencia mas bonita al programa, modifica el metodo principal de esta forma:

CODE
public static void main(String args[])
     {
         try
         {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
         }
         catch(Exception e){}
         
         new Minic().setVisible(true);
     }


Un saludo thumbsup.gif sigue asi
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 17 2006, 07:18 PM
Publicado: #36


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



por cierto ... creo que te pasaste 2 post mios XD y para que sirve el /n?
es que si no ponia eso no me funcionaba
y que hace lo que le agregaste al metodo principal¡?? clap.gif
saludos
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 17 2006, 07:36 PM
Publicado: #37


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



robbie error en el code cuando cambie el main .. pero creo que no es eso... me sale bug report..... parece que no se que tiene ... llanto.gif

error*********************

--------------------Configuration: <Default>--------------------
#
# An unexpected error has been detected by Java Runtime Environment:
#
# Internal Error (455843455054494F4E530E435050011F), pid=344, tid=228
#
# Java VM: Java HotSpot™ Client VM (1.6.0-beta-b59g mixed mode, sharing)
# An error report file with more information is saved as hs_err_pid344.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp


********************************************************
*Minic (MINI CALCULADORA)
*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Minic extends JFrame implements ActionListener
{
//declaracion de variables

JLabel lbl1;
JLabel lbl2;
JLabel lbltotal;
JTextField txt1;
JTextField txt2;
JTextArea txttotal;
JButton btnsuma;
JButton btnresta;
JButton btndivi;
JButton btnmulti;
JScrollPane scpscroll;

//Interfaz grafica GUI

public Minic()
{
setSize(300,170);
setTitle("Mini Calculadora");
setResizable(false);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

getContentPane().setLayout(null);

//lbl1
lbl1 = new JLabel("Number I");
lbl1.setBounds(15,15,55,23);
getContentPane().add(lbl1);

//lbl2
lbl2 = new JLabel("Number II");
lbl2.setBounds(15,39,55,23);
getContentPane().add(lbl2);

//lbltotal
lbltotal = new JLabel("Total");
lbltotal.setBounds(15,70,55,23);
getContentPane().add(lbltotal);

//txt1
txt1 = new JTextField();
txt1.setBounds(75,15,70,23);
getContentPane().add(txt1);

//txt2
txt2 = new JTextField();
txt2.setBounds(75,39,70,23);
getContentPane().add(txt2);

//txttotal
txttotal = new JTextArea();
txttotal.setFont(new Font("monospaced", 0, 12));
txttotal.setBounds(75,70,70,25);
getContentPane().add(txttotal);

//scpscroll
scpscroll = new JScrollPane(txttotal);
scpscroll.setBounds(75, 70, 65, 20);
getContentPane().add(scpscroll);


//btn suma
btnsuma = new JButton("+");
btnsuma.setBounds(170,19,42,23);
btnsuma.addActionListener(this);
getContentPane().add(btnsuma);

//btn resta
btnresta = new JButton("-");
btnresta.setBounds(215,19,42,23);
btnresta.addActionListener(this);
getContentPane().add(btnresta);

//btnmulti
btnmulti = new JButton("x");
btnmulti.setBounds(170,45,42,23);
btnmulti.addActionListener(this);
getContentPane().add(btnmulti);

//btndivi
btndivi = new JButton("/");
btndivi.setBounds(215,45,42,23);
btndivi.addActionListener(this);
getContentPane().add(btndivi);

}

//eventos actionevent
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == btnsuma){


//declaracion de variables
double num1, num2;
double suma;

//entrada de datos
num1 = Double.parseDouble(txt1.getText());
num2 = Double.parseDouble(txt2.getText());

//proceso de datos
suma = num1 + num2;

//borra
txttotal.setText("");
//imprime
txttotal.append(suma+"");


}

if(e.getSource() == btnresta){


//declaracion de variables
double num1, num2;
double resta;

//entrada de datos
num1 = Double.parseDouble(txt1.getText());
num2 = Double.parseDouble(txt2.getText());

//proceso
resta = num1 - num2;

//borra
txttotal.setText("");

//print
txttotal.append(resta+"");
}

if(e.getSource() == btnmulti){


//declaracion de variables
double num1, num2;
double multi;

//entrada de datos
num1 = Double.parseDouble(txt1.getText());
num2 = Double.parseDouble(txt2.getText());

//proceso
multi = num1 * num2;

//borra
txttotal.setText("");

//print
txttotal.append(multi+"");
}

if(e.getSource() == btndivi){


//declaracion de variables
double num1, num2;
double divi;

//entrada de datos
num1 = Double.parseDouble(txt1.getText());
num2 = Double.parseDouble(txt2.getText());

//proceso
divi = num1 / num2;

//borra
txttotal.setText("");

//print
txttotal.append(divi+"");
}
}




public static void main(String args[])
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e){}

new Minic().setVisible(true);
}
}
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Apr 17 2006, 07:51 PM
Publicado: #38


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



oops si me salte tu triple post jaja por las prisas whistling.gif jaja

PRIMERA DUDA
El JScrollPane muestra un area de trabajo con barras de desplazamiento vertical y horizontal, por ejemplo en un jtextarea si el texto no cabe en el area se usan barras de desplazamiento para ver todo el contenido del JTextArea.

SEGUNDA DUDA
Como ya te has dado cuenta, el JTextArea solo acepta datos tipo String, pero tu has declarado a los numeros y a los resultados tipo Double, asi que para que puedan mostrarse en el JTextArea tienen que convertirse a String, para eso es el parseDouble, si fueran integer se usa el parseInteger.

Respecto a lo que paso al poner el codigo que te dije en el main, no se a que se deba, parece que estas usando una version beta del java virtual machine (1.6), recomiendo que instales la 1.5 asi evitaras bugs de ese tipo, si no corre quitale el codigo que te di y dejala como esta, era solo para que tomara el look del windows xp

Un saludo
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 17 2006, 08:17 PM
Publicado: #39


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



creo que era un virus que tenia que reinicie y lo borre XD
por cierto el \n para que sirve?'. y el code para cambiar al main ... que hace ? (el que me diste)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Apr 17 2006, 09:44 PM
Publicado: #40


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



El "\n" es un salto de linea, es decir si por ejemplo escribes

cajadetexto.setText("Hola\nMundo");
en la caja de text quedara

QUOTE
Hola
Mundo


El codigo que te di para que lo pusieras en el main, era para que la aplicacion tomara el "look and feel" del xp, es decir su estilo visual en botones, cajas de textos y todos los componentes swing...

bye1.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 18 2006, 12:12 AM
Publicado: #41


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



ah oks gracias ..... con razon que con el /n me salian barras ahora no ...XD gracias!
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 18 2006, 04:17 PM
Publicado: #42


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



otra dudita ... XD ...
como haria para poner un limite en la casilla de texto... y de paso que solo se admintan valores numericos o de texto ???.... y en el caso que no se cumpla salga un msgbox...??

saluditos :D
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Apr 18 2006, 08:33 PM
Publicado: #43


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



A partir de java 1.4 puedes usar el JFormattedTextField
CODE

//Variable
JFormattedTextField

private JFormattedTextField getNroDoc() {
if (NroDoc == null) {
try {
mascara = new MaskFormatter(\"*************\");
mascara.setValidCharacters(\"1234567890\");
} catch (ParseException e1) {
e1.printStackTrace();
}
NroDoc = new JFormattedTextField(mascara);
NroDoc.setFocusLostBehavior(3);
NroDoc.setBounds(new java.awt.Rectangle(195,258,103,21));

}
return NroDoc;
}


Saludos
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
blizknight
post Apr 19 2006, 06:04 AM
Publicado: #44


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 12-September 04
Miembro nº: 18.538



HMN.... puedes explicarme un poco el code que me pierdo ...T.T ahi estan los 2 ejemplos ?? para texto o para numeros?? o en el caso de que quiera poner menores de 10 ?..
saludos :D

bueno ... aparte de eso como saco el valor absoluto ?? ... XD .. suena tonto pero no se .. y en el caso de que quiero que aparescan 2 decimales de un promedio ??..??...( o sea pongo 2 notas y me da un promedio ... luego me aparescen como 5 cifras despues del punto ... y solo quiero 2 )... como se haria ?

aca tengo un codigo que no entendi por que estaba medio raro... solo pongo una parte que no entendi ... el rpograma consiste en descomponer un numero en sus cifaras 1234 lo pone en 1 2 3 4 y de ahi te compara todos los numeros y te armar el numero mayor con la cifra mayor y la cifra menor que en este caso seria 41... pero no entendi esta parte del codigo...


CODE
//declarar
int numer, cunid, cdece, ccent, cmill, cmay, cmen, maynum;

numero = integer.parseint(txtnumero.gettext());


//descompone numeros
cmill = numero/1000
ccent = numero%1000/100
cdece = numero%1000%100%10
cunid = numero%1000%100%10

//determina cifra mayor pero no enteindo muy bien como
cmay = cmill;
if(ccent > cmay)
  cmay = ccent
if(cdece > cmay)
  cmay = cdece
if(cunid > cmay)
  cmay = cunid;

/determina cifra menor

cmen = cmill;
if(ccent < cmen)
  cmen = ccent;
if(cdece < cmen)
  cmen = cdece;
if(cunid < cmen)
  cmen = cunid;

//numero mayor

maynum = cmay*10 +cmen;


bueno esta parte del code no entendi nadita..... a ver si me ayudas con todo
esto ... grax flowers.gif


Bueno creo que el code ya lo entendi ....estube haciendolo yo mismo con mis dedos y ya lo entendi ... new18.gif solo que esta parte del code fue la que no se entendia bien

//descompone numeros
cmill = numero/1000
ccent = numero%1000/100
cdece = numero%1000%100%10
cunid = numero%1000%100%10

ya que al descomoner uedaban decimales pero me he dado cuenta de que estaba usando int ... y este no tiene decimales .. asi que los decimales se reducen a cero .. estoy bien ??? clap.gif


lo que no entenido ahora es esto:

CODE
HMN.... puedes explicarme un poco el code(del que me pussiste arriba) que me pierdo ...T.T ahi estan los 2 ejemplos ?? para texto o para numeros?? o en el caso de que quiera poner menores de 10 ?..
saludos :D

bueno ... aparte de eso como saco el valor absoluto ?? ... XD .. suena tonto pero no se .. y en el caso de que quiero que aparescan 2 decimales  de un promedio ??..??...( o sea pongo 2 notas y me da un promedio ... luego me aparescen como 5 cifras despues del punto ... y solo quiero 2 )... como se haria ?


Mensaje modificado por blizknight el Apr 19 2006, 03:24 PM
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Apr 19 2006, 08:41 PM
Publicado: #45


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



Bueno, ya mas con calma, te explico, existe a parte del JTextField otra clase llamada JFormattedTextField...
Que no es mas que una caja de texto con posibilidad de tener algunos formatos
las propiedades asignadas son las siguientes:

//Se declara la variable tipo JFormattedTextField Variable y ahi mismo se ajustan las propiedades

CODE
private JFormattedTextField getNroDoc()
{
   if (NroDoc == null)
   { //si no esta vacia lo intenta
       try
       {
           mascara = new MaskFormatter(\"*************\"); //solo se admiten 13 caracteres
           mascara.setValidCharacters(\"1234567890\"); //solo caracteres numericos
       }
       catch (ParseException e1)
      {
           e1.printStackTrace(); //por si hay error imprime el error
      }
      NroDoc = new JFormattedTextField(mascara);//se asigna
      NroDoc.setFocusLostBehavior(3); //se le asigna el foco (no es necesario)
      NroDoc.setBounds(new java.awt.Rectangle(195,258,103,21)); /setBounds ....
  }
  return NroDoc; //retorna la caja de text formateada
}


Saludos bye1.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
1 2 3 4
Closed TopicTopic OptionsStart new topic

Collapse

> Topicos similares

Explorer.exe. Error de Aplicación Mary_Klaus 29 2 Hoy, 10:26 AM
By: Kbite
Error explorer.exe y problemas al abrir USB gab715 148 5 Ayer, 04:48 PM
By: Caito
Error 800401f3 pipe8926 273 4 Sep 5 2008, 09:56 PM
By: culifrunzi
Error al copiar archivos grabados en un DVD Beiya 73 3 Sep 5 2008, 01:47 AM
By: jando
winlogon.exe - error de la aplicacion galegri 54 1 Sep 4 2008, 09:02 PM
By: patricioirrazabal

Google
Web www.trucoswindows.net