genericlistcellrenderer.java

来自「Java GUI Java GUIJava GUIJava GUIJava GU」· Java 代码 · 共 54 行

JAVA
54
字号
import java.awt.*;import javax.swing.*;import java.lang.reflect.*;public class GenericListCellRenderer extends DefaultListCellRenderer {    protected String method;    public GenericListCellRenderer(String method) {        super();        this.method = method;    }            public Component getListCellRendererComponent(JList list, Object value,        int index, boolean isSelected, boolean cellHasFocus) {                JLabel label = (JLabel)super.getListCellRendererComponent(            list,value,index, isSelected, cellHasFocus);                try {            Method meth = value.getClass().getMethod(method,null);            if(meth != null) {                Object retval = meth.invoke(value,null);                label.setText(""+retval);            }        } catch (Exception ex) {            System.out.println("got an execption: " + ex);            ex.printStackTrace();        }                return label;            }        public static void main(String[] args) {        String[] data = { "Proton", "Neutron", "Electron" };        JList list = new JList(data);        //        GenericListCellRenderer renderer = //            new GenericListCellRenderer("toString");        GenericListCellRenderer renderer =             new GenericListCellRenderer("length");//        GenericListCellRenderer renderer = //            new GenericListCellRenderer("hashCode");        list.setCellRenderer(renderer);                JFrame frame = new JFrame("Cell Renderer Hack");        frame.getContentPane().add(list);        frame.pack();        frame.setVisible(true);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?