Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/01/2013, 17:30
baterista41
 
Fecha de Ingreso: junio-2012
Mensajes: 32
Antigüedad: 11 años, 11 meses
Puntos: 1
Pregunta Imprimir alreves una lista enlazada

Bueno la idea es insertar N cantidad de números y imprimirlos alreves mediante una lista enlazada lo trata de hacer con arreglos pero tenia un limite de tamaño ya inserto haora al momento de imprimirlos solo me imprime el ultimo numero pero lo demás me lo vota como null les dejo mis metodos

creo que el método visualizar es el malo

public void Insertar(int x){
NumeroInvertido Nuevo;
Nuevo=new NumeroInvertido();
Nuevo.info=x;
Nuevo.siguiente=null;
Nuevo.anterior=null;
if(principio==null){
principio=Nuevo;
finall=Nuevo;



}
else{
Nuevo.anterior=finall.siguiente;
finall=Nuevo;

}

}

public void Vizualizar(){
NumeroInvertido temp;


if(principio!=null){
temp=finall;
while(temp!=principio){
j.append(temp.info+",");
temp=temp.anterior;


}
}
}





Aquí les dejo la clase completa para que lo corran pero creo que mi error es en vizualiazar



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

public class NumeroInvertido extends JFrame {
JLabel titulo=new JLabel("Numero invertido");
JLabel titulo2=new JLabel("Ingresa un numero");
JTextField g=new JTextField();
JButton Ingresar,Limpiar,Salir;
int numero;
JTextArea j=new JTextArea();
NumeroInvertido principio,finall,siguiente,anterior;
private int info;


public NumeroInvertido(){
principio=null;
finall=null;

setSize(400,250);
setTitle("Numero Invertido");
setLocation(460,200);
getContentPane().setLayout(null);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);

titulo.setBounds(80,30,100,30);
getContentPane().add(titulo);

titulo2.setBounds(20,60,120,30);
getContentPane().add(titulo2);

g.setBounds(135,60,100,30);
getContentPane().add(g);

final JButton Ingresar=new JButton("Ejecuta");
Ingresar.setBounds(240,60,100,30);
getContentPane().add(Ingresar);

Limpiar=new JButton("Limpiar");
Limpiar.setBounds(120,160,80,30);
getContentPane().add(Limpiar);

Salir=new JButton("Salir");
Salir.setBounds(210,160,80,30);
getContentPane().add(Salir);

j=new JTextArea();
JScrollPane barra=new JScrollPane(j);
j.setBounds(80,100,200,50);
getContentPane().add(j);


ActionListener accion=new java.awt.event.ActionListener() {

@Override
public void actionPerformed(java.awt.event.ActionEvent evento) {

Object obj=evento.getSource();

if(obj==Salir){
System.exit(0);
}
if(obj==Ingresar){
int x=Integer.parseInt(g.getText());
j.append(x+",");
Insertar(x);
g.setText("");

}
if(obj==Limpiar){
Vizualizar();
}



}
};
Salir.addActionListener(accion);
Ingresar.addActionListener(accion);
Limpiar.addActionListener(accion);

}

public void Insertar(int x){
NumeroInvertido Nuevo;
Nuevo=new NumeroInvertido();
Nuevo.info=x;
Nuevo.siguiente=null;
Nuevo.anterior=null;
if(principio==null){
principio=Nuevo;
finall=Nuevo;



}
else{
Nuevo.anterior=finall.siguiente;
finall=Nuevo;

}

}

public void Vizualizar(){
NumeroInvertido temp;


if(principio!=null){
temp=finall;
while(temp!=principio){
j.append(temp.info+",");
temp=temp.anterior;


}
}
}



public static void main(String args[]){
new NumeroInvertido().setVisible(true);
}

}