Jump to content

bersek

Novato
  • Posts

    16
  • Joined

  • Last visited

Everything posted by bersek

  1. Los constructores sirven para inicializar variables de instancia y llamar métodos que necesitan ser inicializados cuando se construye el objeto en java como lenguaje orientado a objeto, existe lo que se conoce como sobrecarga de metodos ,perfectamente en tu clase PjAlto podrias tener un constructor sin argumentos public PjAlto(); y podrias llamarlo sin problemas, lo malo es que si tienes variables de instancia estas van a quedar con su valor por defecto ( a menos que ya les ayas asignado un valor) 0.0 para float y double 0 para int, long,short y byte '\u000' para las varibles de tipos char null para las referencias a objetos luego de eso tendrias que llamar a su respectivo setter para asignarle un valor mucho atado, no crees? cuento corto create un constructor que no reciba argumentos y satea las variables de instancias cuando las crees, con eso haces la llamada al metodo usando la referencia creada y no deberias tener dramas saludos
  2. el error esta en que probablemente los metodos que usas como geter son estaticos. y al ser estaticos, no se puede usar miebros de instancia desde dentro de ellos tu solucion es sacarle el static y llamarlos mediante una referencia al objeto ejemplo PjAlto p=new PjAlto(); String nombre=p.getNombrePjAlto(); .pd: la relacion de herencia no pasa la prueba "es un" para saber si existe dicha relacion entre dos clases debes preguntarte : un PjAlto es una caracteristica? << -- definitivamente no xdd mas bien yo le pondria la clase Actor y la clase pjAlto podria llamarse personaje
  3. Vamos por parte como dijo jack: primero : tu problema de la carga infinita radica aquí : El archivo que estas leyendo tiene un fin es decir, tiene un numero limitado de linea a leer por lo tanto no tiene sentido que a tu ciclo while le pongas un true ya que como la condición a evaluar por defecto es true, tu siclo va a ser infinito lo que quiero decir es que no va a dejar de iterar hasta que la condición se haga false ( nunca se hace false en tu programa) o salgas del while con alguna sentencia de escape como el break o return Segundo : con respecto a la carga de los datos desde un txt El método que usas no es optimo, en mi opinión estas usando fuerza bruta para cargarlos para no alargar mucho el post ( porque son muchos los errores que tienes ) voy a agregarte el código para cargar datos de un archivo, si tienes dudas me consultas despues File f = new File("c:/archivo.txt"); try { BufferedReader bf = new BufferedReader(new FileReader(f)); String linea=null; while ((linea=bf.readLine()) != null) { System.out.println(linea); } } catch (FileNotFoundException ex) { System.out.println("Archivo no encontrado"); } catch (IOException ex) { System.out.println("Error"); } ojo, no estoy diciendo que no se pueda leer un archivo con la clase Scanner porque si se puede xd puedes llenar inmediatamente tu comboBox si agregas esta linea al cuerpo del while nombreDelComboBox.addItem(linea); File f = new File("c:/archivo.txt"); try { BufferedReader bf = new BufferedReader(new FileReader(f)); String linea=null; while ((linea=bf.readLine()) != null) { //System.out.println(linea); nombreDelComboBox.addItem(linea); } } catch (FileNotFoundException ex) { System.out.println("Archivo no encontrado"); } catch (IOException ex) { System.out.println("Error"); } con esto queda solucionado tu problema de la carga infinita ahora si quieres cargar un comboBox dinamicamente lo unico que tienes que hacer es jugar con los listener En el siguiente codigo primero le agregamos un listener al combo Box luego en el cuerpo del metodo ActionPerformed preguntamos si el item seleccionado es igual a "click aqui" , si se cumple la condicion le quitamos el listener e invocamos el metodo cargarComboBoxFinal(); jComboBox1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { if(jComboBox1.getSelectedItem().equals("---click aqui--")){ jComboBox1.removeActionListener(this); cargarComboBoxFinal(); } } }); aqui esta el codigo del metodo cargarComboBoxFinal() en donde se cargan los valores del archivo, se agregan al combobox y le asignamos otro listener public void cargarComboBoxFinal() { jComboBox1.removeAllItems(); File f = new File("c:/archivo.txt"); try { BufferedReader bf = new BufferedReader(new FileReader(f)); String linea = null; while ((linea = bf.readLine()) != null) { // System.out.println(linea); jComboBox1.addItem(linea); } } catch (FileNotFoundException ex) { System.out.println("Archivo no encontrado"); } catch (IOException ex) { System.out.println("Error"); } jComboBox1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { System.out.println(jComboBox1.getSelectedItem()); } }); } espero que entiendas saludos
  4. public void buscarEliminar(String nuevoNombre) { //creamos el ArrayList auxiliar que nos va a contener los objetos que serán eliminados ArrayList<Contacto> aux=new ArrayList<Contacto>(); for(Contacto x : contactos) { if(x.getNombre().equalsIgnoreCase(nuevoNombre)) { aux.add(x); // si se cumple la condición, guardamos el objeto en la lista } } //aqui le pasamos la lista de objetos que cumplían con la condición para que sean eliminados de la lista contactos contatos.removeAll(aux); } es mas facil de lo que parece :ROLF: otra cosa...en tu clase Contacto tienes dos constructores y uno de ellos deja a la variable "nombre" con una referencia null asegúrate de que al momento de crear el objeto, el nombre no quede con dicha referencia ya que aunque se agregue a la lista sin problemas, te dará un error en tiempo de ejecución de tipo NullPointerException
  5. amigo su problema es simple el error que te manda es porque estas modificando la lista al mismo tiempo que la recorres. el for each o for mejorado te sirve solo para iterar una lista y no para agregar o quitar datos a la lista como solucion te propongo que en el metodo buscarEliminar crees un nuevo arrayList que te almacene los objetos que van a ser eliminados luego llamas al metodo removeall(Collection<?> c) de la lista contactos y le pases como parametro el arrayList que contiene la lista de objetos que van a ser eliminados pd: si tienes problemas te agrego el código... pero lo ideal es que lo hagas tu
  6. podrías decir cual es el tipo de error que te arroja
  7. tienes que obtener un objeto de la clase Date con la información que te da el jDateChooser ( la fecha que seleccionno el usuario ). esto lo puedes hacer mediante el método getDate(); ejemplo suponiendo que tu variable de tipo jDateChooser se llama jDateChooser1 tendrias que hacer lo siguiente: Date fechaDateChooser=jDateChooser1.getDate(); jLabel1.setText(fecha); luego mostrar el resultado en un jLabel la instruccion anterior te daria la siguiente salida: Thu May 12 00:00:00 CLT 2011 para hacerle un format a la fecha de modo que se muestre del tipo "dd-mm-yyyy" tienes que usar la clase SimpleDateFormat pasando el formato de fecha en el constructor y usando el metodo format(Date fecha) SimpleDateFormat fechaPersonalizada = new SimpleDateFormat("dd - MM - yyyy"); String fecha =fechaPersonalizada .format(fechaDateChooser); jLabel1.setText(fecha); Espero que sea de ayuda suerte con lo tuyo
  8. el descuento es por producto o por compra total? para sacar el valor total lo único que tienes que hacer es multiplicar el total por 0.85 ahí está el producto con el descuento en este caso es multiplicar v1 suponiendo que de ahi sale el precio total por 0.85 luego c3.setText(""+v1); el método tienda tiene dos argumentos de el cual solo usas uno...
  9. Primero: yo veo que modificar y visualizar no son clases sino métodos (no sé si te equivocaste o no entiendes bien los conceptos) Segundo: como dice rvega77 tu pregunta tiene que ver con el ámbito de las variables, no puedes usar variables locales fuera del método donde se declaran (no voy a poner ejemplos porque ya los pusieron: :ROLF: ) por lo tanto para hacer que se muestren los datos tienes varias opciones -una opción seria pasar los array como parámetros al método modificar lo cual no es una buena practica imagínate pasando 14 arreglos como parámetros O_o -otra opción es dejar los arreglos como variables de instancia para que de esta forma puedas acceder a ellas desde cualquier método (Es mejor opción que la anterior pero tampoco es muy recomendable). Para cualquier opción que tomes el siguiente paso es recorrer los arreglos con un bucle y mostrar los datos Lo mejor que puedes hacer es darle un poco de orientación a objetos a tu código y es rehacerlo, quizás hacer un clase trabajador con los respectivos atributos privados como : nombre, salario, hora extras...etc, crear sus respectivos getter y setter (puedes hacer el uso de la herencia aquí si es que hay más de un cargo ) y los métodos que calculen el salario Luego por cada trabajador, crear un objeto y guardarlo en un arrayList o en un array, entonces cuando quieras mostrar los datos de los trabajadores lo único que tienes que hacer es recorrer el arrayList mostrando los datos si tienes alguna duda pregunta noma :paco:
  10. ;) seguro le sirve a alguien mas suerte con tu proyecto
  11. a la ventana de arriba le agrege dos paneles en uno pinto el grafico de torta y en el otro panel se ingresan los valores para ser pintados en el grafico aqui esta la foto aquí esta el proyecto netbeans http://www.mediafire.com/file/20n2rf71fdrqwrr/torta.rar lo hice a la rápida así que tiene errores suerte
  12. no sé si quieres crear interfaces gráficas con swing o hablas de usar la clase Graphics para pintar figuras y formas en swing de todas formas aquí va un ejemplo de la creación de una ventana en swing. avísame si quieres ayuda con la clase graphics para dibujar una ventana en swing basta con extender de la clase JFrame o crear un objeto JFrame que te permita utilizar los metodos encargados de pintar la pantalla algunos de los métodos mas importantes son; setVisible(boolean b); este metodo hace visible la ventana creada setSize(int alto,int ancho); con este metodo le das el tamaño a la ventana setLocationRelativeTo(component c ) este metodo centra la ventana enrelacion a un componente vamos a ver un ejemplo de como puedes pintar la ventana si quisieras heredar de JFrame seria algo como esto el resultado seria este hoy en dia hay ide's que se encargan de todo lo que a gui se refiere como es el caso de netbeans y ya prácticamente uno no necesita tener gran conocimiento de las librerías gráficas aunque... por otro lado, nunca esta de mas seberlo. si tienes alguna duda consulta noma :)
  13. h es un string pero al utilizar el metodo length(); obtienes un int correspondiente al largo de la cadena de esta forma el codigo quedaria mas o menos asi pides los datos if(h.lenght()< 8 || h.length > 9) { mensaje que el rut es invalido } else { codigo que valida el rut }
  14. Lo que aria yo seria validad el largo de la cadena. ejemplo 12.345.678-9 <--- el largo de este rut es de 12 caracteres, con el metodo length(); puedo saber el largo del string. si el largo es menor que 11 o mayor a 12 entonces no es valido la validación tienes que hacerla en el condigo donde se pide el ingreso del rut también puedes hacerlo después de quitarle los puntos y el guion. entonces si el largo es menor que 8 o mayor que 9 entonces esta malo
  15. Un cuadrado mágico es la disposición de una serie de números enteros en un cuadrado o matriz de forma tal que la suma de los números por columnas, filas y diagonales principales sea la misma, la constante mágica. Usualmente los números empleados para rellenar las casillas son consecutivos, de 1 a n², siendo n el número de columnas y filas del cuadrado mágico. fuente http://es.wikipedia.org/wiki/Cuadrado_m%C3%A1gico quiza con esta imagen te quede mas claro con respecto a lo otro. aquí hice un código de ejemplo que muestra mas o menos como podrías hacerlo declarando una matriz de String y almacenando los valores donde corresponda si quieres sumar los valores ingresados de un depto en especifico, tendrás que convertirlos en números para poder operar sobre ellos public class Test { public Test() { int op; String[][] deptos = new String[][]{{"****", "dep1", "dep2", "dep3", "dep4", "dep5", "dep6", "dep7",}, {"suc1", null, null, null, null, null, null, null}, {"suc2", null, null, null, null, null, null, null}, {"suc3", null, null, null, null, null, null, null}, {"suc4", null, null, null, null, null, null, null}, {"suc5", null, null, null, null, null, null, null}}; //creas el menu //System.out.println("1 depto 1"); //etc op = 1; switch (op) { case 1: for (int i = 1; i < 6; i++) { System.out.println("ingrese las ventas de la sucursal numero " + i + " del depto numero " + op); //lees los datos y los almacenas en la fila i columa op deptos[i][op] = "50000";// valor ingresado por el usuario } break; case 2: break; } System.out.println(""); //muestra el contenido de la matriz for (int i = 0; i < 6; i++) { for (int j = 0; j < 8; j++) { System.out.print(" " + deptos[i][j]); } System.out.println(""); } } public static void main(String arg[]) { new Test(); } } el código esta creado en netbeans y compila Saludos
×
×
  • Create New...