I'm programming an applet which shows a JList
(in a JScrollPane
); inside of it there is an array called libros
.
private Libro[] libros = new Libro[20];
The Libro
class:
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;
}
}
The main class looks like this:
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);
}
}
So the list isn't okay.
答案 0 :(得分:1)
You define an instance variable:
private JList lista_libros;
and a local variable:
JList lista_libros = new JList();
I would guess you should not have the local variable:
//JList lista_libros = new JList();
lista_libros = new JList();