Foros del Web » Programación para mayores de 30 ;) » Java »

No puedo agregar elementos a un JList.

Estas en el tema de No puedo agregar elementos a un JList. en el foro de Java en Foros del Web. Hola, estoy intentando hacer un programa para gestionar proyectos para un grupo y estoy teniendo un problema que no tengo ni idea de como solucionar, ...
  #1 (permalink)  
Antiguo 19/05/2013, 09:53
 
Fecha de Ingreso: mayo-2012
Mensajes: 29
Antigüedad: 12 años
Puntos: 0
Pregunta No puedo agregar elementos a un JList.

Hola, estoy intentando hacer un programa para gestionar proyectos para un grupo y estoy teniendo un problema que no tengo ni idea de como solucionar, ya llevo 1 hora intentandolo todo y no hay manera...

Pues bien, tengo una ventana con un JSplitPane que divide un JList y un JScrollPane con un JTextArea y un JPanel que hace de barra superior en la ventana en donde tengo el botón para agregar proyecto y para volver a la ventana anterior.

http://oi43.tinypic.com/53328j.jpg

El caso es que cuando le doy a agregar proyecto y ingreso toda la informacion, no se agrega ningún elemento al JList, en cambio si lo hago directamente agregandolo desde el código si se agrega el elemento...

El sistema que uso es un método con 4 Strings (Nombre del proyecto, Fecha de inicio, estado y descripción) que abren cada 1 un JOptionPane con un ShowInputMessage. Luego pongo dlm.addElement(nombreproyecto); (dlm es el DefaultListModel y nombreproyecto el string nombre en el método). Este método no lo he terminado porque quiero solucionar eso primero.

Quiero que al darle click al boton se agregue el elemento con el nombre del proyecto a la JList y que a la vez el JTextArea adopte toda la información, aunque el problema es la parte del JList.

Aquí dejo parte del código:

PanelSuperiorProyectos.java
Código:
package com.unclain.manager.projects;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
class PanelSuperiorProyectos extends JPanel{
	
	private static final long serialVersionUID = 1L;
	
	public GridBagConstraints gbc;
	
	public JLabel lblmisproyectos;
	
	public JButton btnap;
	public JButton btnvolver;
	
	public VentanaProyectos vp;
	
	public PanelList pl;
	public PanelInformacion pi;
	
	public String npe;
	
	public PanelSuperiorProyectos(){
		this.setLayout(new GridBagLayout());
		gbc = new GridBagConstraints();
		gbc.insets = new Insets(5, 5, 5, 5);
		gbc.anchor = GridBagConstraints.NORTHWEST;
		
		lblmisproyectos = new JLabel("Proyectos");
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbc.weightx = 1.0;
		gbc.weighty = 1.0;
		add(lblmisproyectos, gbc);
		lblmisproyectos.setFont(new Font("Verdana", Font.PLAIN, 20));
		lblmisproyectos.setForeground(new Color(200, 200, 200));
		
		btnap = new JButton("Agregar proyecto");
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbc.weightx = 1.0;
		gbc.weighty = 1.0;
		add(btnap);
		
		btnvolver = new JButton("Volver");
		gbc.gridx = 2;
		gbc.gridy = 0;
		gbc.weightx = 1.0;
		gbc.weighty = 1.0;
		add(btnvolver, gbc);
		
		btnap.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				pl = new PanelList();
				pl.agregarElemento(new String(), new String(), new String(), new String());
			}
		});
	}
}
PanelJList.java

Código:
package com.unclain.manager.projects;

import javax.swing.*;

import java.awt.*;

public class PanelList extends JPanel{

	public GridBagConstraints gbc;
	public JList list;
	public DefaultListModel dlm;
	public JScrollPane scrollpanelist;
	public JLabel lbltitulo;
	
	public PanelInformacion pi;
	
	public PanelList(){
		this.setLayout(new GridBagLayout());
		gbc = new GridBagConstraints();
		
		lbltitulo = new JLabel("Proyectos");
		gbc.gridx = 0;
		gbc.gridy = 0;
		add(lbltitulo, gbc);
		
		list = new JList();
		dlm = new DefaultListModel();
		
		scrollpanelist = new JScrollPane(list);
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbc.weightx = 1.0;
		gbc.weighty = 1.0;
		gbc.fill = GridBagConstraints.BOTH;
		add(scrollpanelist, gbc);
		
	}
	
	public void agregarElemento(String nombreproyecto, String fechainicio, String estado, String descripcion){
		pi = new PanelInformacion();
		
		nombreproyecto = JOptionPane.showInputDialog("Introduzca el nombre del proyecto");
		fechainicio = JOptionPane.showInputDialog("Introduzca la fecha de inicio");
		estado = JOptionPane.showInputDialog("Introduzca el estado del proyecto");
		descripcion = JOptionPane.showInputDialog("Describa el proyecto");
		
		System.out.println("Nuevo proyecto creado; " + "Nombre: " + nombreproyecto + ", Fecha de inicio: " + fechainicio + ", Estado actual: " + estado + ", Descripción: " + descripcion);
		
		dlm.addElement(nombreproyecto);
	}
	
}
No es problema del botón en sí porque los diálogos se abren perfectamente.

Si necesitáis más información por favor díganlo.

Muchas gracias por vuestra atención.
  #2 (permalink)  
Antiguo 19/05/2013, 19:03
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Mensaje Respuesta: No puedo agregar elementos a un JList.

En la clase PanelList, te falta enviarle el Model al Jlis.

Según veo haces un nuevo objeto de los dos, pero nunca le envías el model al Jlist.

list = new JList();
dlm = new DefaultListModel();

list.setModel(dim);

Ahora si, todo lo que le agregues al modelo, se reflejará en la Jlist.

Etiquetas: jlist
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:15.