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);
}
}