2016-07-11 3 views
0

JList (JScrollPane)을 표시하는 애플릿을 프로그래밍하고 있습니다. 그 안에는 libros이라는 배열이 있습니다.BorderLayout에서 JList가 제대로 표시되지 않습니다.

private Libro[] libros = new Libro[20]; 

Libro 클래스 : 주요 클래스는 다음과 같습니다

package tp_libreria; 

class Libro { 
    private int numero_id; 
    private String titulo; 
    private String autor; 
    private boolean reservado; 
    private String nombre_usuario_reserva; 

    // constructor 
    public Libro(int numero_id, String titulo, String autor, boolean reservado, String nombre_usuario_reserva) { 
     this.numero_id = numero_id; 
     this.titulo = titulo; 
     this.autor = autor; 
     this.reservado = reservado; 
     this.nombre_usuario_reserva = nombre_usuario_reserva; 
    } 

    // getter 
    public int getNumero_id() { 
     return numero_id; 
    } 

    public String getTitulo() { 
     return titulo; 
    } 

    public String getAutor() { 
     return autor; 
    } 

    public boolean getReservado() { 
     return reservado; 
    } 

    public String getNombre_usuario_reserva() { 
     return nombre_usuario_reserva; 
    } 
    // setter 

    public void setNumero_id() { 
     this.numero_id = numero_id; 
    } 

    public void setTitulo() { 
     this.titulo = titulo; 
    } 

    public void setAutor() { 
     this.autor = autor; 
    } 

    public void setReservado() { 
     this.reservado = reservado; 
    } 

    public void setNombre_usuario_reserva() { 
     this.nombre_usuario_reserva = nombre_usuario_reserva; 
    } 
} 

:

applet

public class Menu extends JFrame { 
    private JTextField f_usuario; 
    private JPasswordField f_pass; 
    private JList lista_libros; 
    private JScrollPane lista; 
    private JButton b_ingreso, b_lista_libros, b_reservar, b_agregar, b_eliminar; 
    private Usuario[] usuarios = new Usuario[5]; 
    private Libro[] libros = new Libro[20]; 
    private int r; 

    public static void main(String args[]) { 
     Menu application = new Menu(); 
     //inicializa los usuarios 
     application.usuarios[0] = new Usuario("admin", "admin", true); 
     application.usuarios[1] = new Usuario("usuario1", "123", false); 
     application.usuarios[2] = new Usuario("usuario2", "123", false); 
     application.usuarios[3] = new Usuario("usuario3", "123", false); 
     application.usuarios[4] = new Usuario("usuario4", "123", false); 
     application.libros[0] = new Libro(1, "Igna", "Vicio", true, ""); 
     application.libros[1] = new Libro(2, "Gabriel", "Capo", true, ""); 
     application.libros[2] = new Libro(3, "Juio", "Maestro", true, ""); 
     application.libros[3] = new Libro(1, "JK", "Es", true, ""); 
     application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    public Menu() { 
     super("Menu"); 
     JLabel e_usuario = new JLabel("Usuario"); 
     JLabel e_pass = new JLabel("Pass"); 
     final JLabel e_log = new JLabel("Usuario invitado"); 
     JButton b_ingreso = new JButton("Entrar"); 
     JButton b_lista_libros = new JButton("Listar libros"); 
     final JButton b_reservar = new JButton("Reservar"); 
     final JButton b_agregar = new JButton("Agregar"); 
     final JButton b_eliminar = new JButton("Eliminar"); 
     JList lista_libros = new JList(); 

     b_ingreso.addActionListener(
       new ActionListener() { 
        public void actionPerformed(ActionEvent evento) { 
         if (validar() == true) { // muestra botones si es true 
          e_log.setText("Bienvenido " + usuarios[r].getUsuario()); 
          b_reservar.setEnabled(true); 
          if (usuarios[r].getAdmin() == true) { 
           b_agregar.setEnabled(true); 
           b_eliminar.setEnabled(true); 
          } 
         } else { 
         } 
        } 
       } 
     ); 

     b_reservar.addActionListener(
       new ActionListener() { 
        public void actionPerformed(ActionEvent e) { 
        } 
       } 
     ); 

     b_lista_libros.addActionListener(
       new ActionListener() { 
        public void actionPerformed(ActionEvent e) { 
         JOptionPane.showMessageDialog(null, ""); 
         lista.setVisible(true); 
         getContentPane().validate(); 
         getContentPane().repaint(); 
        } 
       } 
     ); 

     b_agregar.addActionListener(
       new ActionListener() { 
        public void actionPerformed(ActionEvent e) { 
        } 
       } 
     ); 

     b_eliminar.addActionListener(
       new ActionListener() { 
        public void actionPerformed(ActionEvent e) { 
        } 
       } 
     ); 

     f_usuario = new JTextField(15); 
     f_pass = new JPasswordField(15); 

     lista_libros = new JList(libros); 
     lista_libros.setVisibleRowCount(5); 
     lista_libros.setLayoutOrientation(JList.VERTICAL); 
     lista_libros.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 

     lista = new JScrollPane(lista_libros); 
     lista.setVisible(false); 

     JPanel ingreso = new JPanel(); 
     ingreso.add(e_usuario); 
     ingreso.add(f_usuario); 
     ingreso.add(e_pass); 
     ingreso.add(f_pass); 
     ingreso.add(b_ingreso); 
     ingreso.add(e_log); 

     JPanel botones = new JPanel(); 
     botones.add(b_lista_libros); 
     botones.add(b_agregar); 
     botones.add(b_reservar); 
     botones.add(b_eliminar); 

     JPanel contenedor = new JPanel(); 
     contenedor.setLayout(new FlowLayout()); 

     contenedor.add(ingreso); 
     contenedor.setVisible(true); 

     JPanel contenedor1 = new JPanel(); 
     contenedor1.setLayout(new GridLayout(4, 1)); 
     contenedor1.add(b_lista_libros); 
     contenedor1.add(b_agregar); 
     contenedor1.add(b_reservar); 
     contenedor1.add(b_eliminar); 

     b_agregar.setEnabled(false); 
     b_reservar.setEnabled(false); 
     b_eliminar.setEnabled(false); 

     JPanel a = new JPanel(); 
     a.setLayout(new BorderLayout()); 
     a.add(contenedor, BorderLayout.NORTH); 
     a.add(contenedor1, BorderLayout.WEST); 
     a.add(lista, BorderLayout.CENTER); 

     Container a1 = getContentPane(); 
     a1.setLayout(new FlowLayout()); 
     a1.add(a); 

     setSize(1024, 550); 

     setVisible(true); 
    } 
} 
그래서 목록이 괜찮 없습니다.

private JList lista_libros; 

및 지역 변수 :

답변

1

당신은 인스턴스 변수를 정의

JList lista_libros = new JList(); 

난 당신이 로컬 변수가 없어야합니다 생각합니다 :

//JList lista_libros = new JList(); 
lista_libros = new JList(); 
+0

확인을, 나는 삭제 지역 변수 나는 처음에 그것을 추가하고 나중에 그것을 고치지 않는 것을 생각한다. – frusciante