title image


Smiley JList: Ausgewähltes Element größer darstellen
Hi,ich hätte gerne eine JList, bei der der momentan ausgewählte Eintrag deutlich größer oder sogar zweizeilig dargestellt wird.Es ist überhaupt kein Problem alle Einträge der JList größer oder zweizeilig zu machen, aber wenn ich versuche ausschließlich den aktuell ausgewählten Eintrag hervorzuheben, wird dieser abgeschnitten und nicht vollständig angezeigt.Hier ein ganz einfaches Beispielprogramm, dass das Problem demonstriert. In diesem Beispiel versuche ich einfach nur den ausgewählten Eintrag mit doppelt so großer Schriftgröße darzustellen:import java.awt.*import javax.swing.*public class ListCellRendererTest { public static void main(String[] args) { JFrame frame = new JFrame("ListCellRendererTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); String listEntries[] = {"Element 1", "Element 2", "Element 3", "Element 4", "Element 5"}; JList list = new JList(listEntries); list.setCellRenderer(new MyListCellRenderer()); JScrollPane scrollPane = new JScrollPane(list); frame.getContentPane().add(scrollPane, BorderLayout.CENTER); frame.setSize(400, 300); frame.setVisible(true); } }class MyListCellRenderer implements ListCellRenderer { private DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer(); public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); renderer.setText(value.toString()); if (isSelected) { renderer.setFont(new Font(list.getFont().getName(), Font.PLAIN, list.getFont().getSize() * 2)); } else { renderer.setFont(list.getFont()); } return renderer; }}Der ausgewählte Eintrag wird tatsächlich etwas größer dargestellt, aber halt nicht groß genug. Ach ja, ein einfaches renderer.setSize(...) oder ähnliches innerhalb des ListCellRenderers hilft, soweit ich das gesehen hab, auch nicht. Aber was mache ich bloß falsch? Das eine JList prinzipiell unterschiedlich große Einträge anzeigen kann, zeigt dieses Beispiel, dass mir allerdings bei meinem Problem nicht geholfen hat:http://www.java2s.com/Code/Java/Swing-JFC/ComplexRenderingSampleListCellRenderer.htmIch bin für jeden Hinweis dankbar.



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: