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:
PanelJList.javapackage 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()); } }); } }
Código:
No es problema del botón en sí porque los diálogos se abren perfectamente. 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); } }
Si necesitáis más información por favor díganlo.
Muchas gracias por vuestra atención.