Alguem sabe como fazer uma JList com + de uma linha de texto?
Tentei usando o
, mas o obvio aconteceu, não funcinou…
Marvin
Alguem sabe como fazer uma JList com + de uma linha de texto?
Tentei usando o
, mas o obvio aconteceu, não funcinou…
Marvin
Caro Marvin,
Você deve criar um modelo para seu JList contendo a lista de itens que o mesmo possui.
Vou tentar exemplificar no trecho de código a seguir:
JList itens = new JList();
DefaultListModel modeloItens = new DefaultListModel();
modeloItens.addElement( "Item 1" );
modeloItens.addElement( "Item 2" );
modeloItens.addElement( "Item 3" );
itens.setModel( modeloItens );
Espero ter ajudado!!
Eh, ±…
Tipo, se tem algum tuto ou artigo sobre modelos, eh que eu naum sei como “explicar” pro modelo que precisa quebrar linha.
tentei fazer algo aqui. Olha, utilizei um JTextArea pra exibir. :D agora com
\n funciona .. hehehehe...
/*
* Criado por Bruno R. Lima em 26/10/2004
*/
package com.sample;
import java.awt.Color;
import java.awt.Component;
import javax.swing.DefaultListCellRenderer;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JTextArea;
/**
*
* @author Bruno Rios Lima
*/
public class JListTwoLines {
public static void main(String[] args) {
JFrame frame = new JFrame();
JList lista = new JList(new DefaultListModel());
lista.setCellRenderer(new MyListRenderer());
((DefaultListModel)lista.getModel()).addElement("Item1 \nItem 1.2");
((DefaultListModel)lista.getModel()).addElement("Item2");
((DefaultListModel)lista.getModel()).addElement("Item3");
frame.getContentPane().add(lista);
frame.pack();
frame.show();
}
}
class MyListRenderer extends DefaultListCellRenderer{
JTextArea text;
public Component getListCellRendererComponent(
JList lista,
Object valor,
int i,
boolean s,
boolean f )
{
JLabel label = (JLabel)super.getListCellRendererComponent(lista,valor,i,s,f);
text = new JTextArea((String)valor);
text.setBackground(label.getBackground());
text.setForeground(label.getForeground());
text.setFont(label.getFont());
return text;
}
}
flw.!