什么是Swing等效于HTML

什么是Swing等效于HTML,第1张

什么是Swing等效于HTML

考虑以下实现作为如何应用自定义样式创建不可选择项目的基本指南:

public class ExtendedComboBox extends JComboBox {    public ExtendedComboBox() {        setModel(new ExtendedComboBoxModel());        setRenderer(new ExtendedListCellRenderer());    }    public void addDelimiter(String text) {        this.addItem(new Delimiter(text));    }    private static class ExtendedComboBoxModel extends DefaultComboBoxModel {        @Override        public void setSelectedItem(Object anObject) { if (!(anObject instanceof Delimiter)) {     super.setSelectedItem(anObject); } else {     int index = getIndexOf(anObject);     if (index < getSize()) {         setSelectedItem(getElementAt(index+1));     } }        }    }    private static class ExtendedListCellRenderer          extends DefaultListCellRenderer {        @Override        public Component getListCellRendererComponent(JList list, Object value,  int index, boolean isSelected, boolean cellHasFocus) { if (!(value instanceof Delimiter)) {     return super.getListCellRendererComponent(list, value, index,  isSelected, cellHasFocus); } else {     JLabel label = new JLabel(value.toString());     Font f = label.getFont();     label.setFont(f.deriveFont(f.getStyle()      | Font.BOLD | Font.ITALIC));     return label; }        }    }    private static class Delimiter {        private String text;        private Delimiter(String text) { this.text = text;        }        @Override        public String toString() { return text.toString();        }    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5487014.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存