javax.swing.JList#getDropLocation ( )源码实例Demo

下面列出了javax.swing.JList#getDropLocation ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: netbeans   文件: TreeList.java
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
    if (!(value instanceof TreeListNode)) {
        //shoudln't happen
        return new JLabel();
    }
    TreeListNode node = (TreeListNode) value;
    int rowHeight = list.getFixedCellHeight();
    int rowWidth = list.getVisibleRect().width;
    int dropIndex = -1;
    DropLocation dropLocation = list.getDropLocation();
    if (dropLocation != null && !dropLocation.isInsert()) {
        dropIndex = dropLocation.getIndex();
    }
    boolean isDropTarget = dropIndex == index;
    isSelected = isSelected || isDropTarget;
    Color background = isSelected ? list.getSelectionBackground() : list.getBackground();
    Color foreground = isSelected ? list.getSelectionForeground() : list.getForeground();

    return node.getRenderer(foreground, background, isSelected, cellHasFocus, rowHeight, rowWidth);
}
 
源代码2 项目: netbeans   文件: AnalyserCellRenderer.java
@Override
    public Component getListCellRendererComponent (
        JList                   list,
        Object                  value,
        int                     index,
        boolean                 isSelected,
        boolean                 cellHasFocus
    ) {
        setComponentOrientation (list.getComponentOrientation ());

        Color bg = null;
        Color fg = null;

        JList.DropLocation dropLocation = list.getDropLocation ();
        if (dropLocation != null && !dropLocation.isInsert () && dropLocation.getIndex () == index) {

            bg = UIManager.getColor ("List.dropCellBackground");
            fg = UIManager.getColor ("List.dropCellForeground");

            isSelected = true;
        }

        String line = (String) value;
        Link link = StackLineAnalyser.analyse (line);

        if (isSelected) {
            setBackground (bg == null ? list.getSelectionBackground () : bg);
            setForeground(fg == null ? list.getSelectionForeground() : fg);
        } else {
            setBackground (list.getBackground ());
//            if (link != null)
//                setForeground (foreground);
//            else
                setForeground (list.getForeground ());
        }

        if (link != null) {
            StringBuilder sb = new StringBuilder ();
            sb.append ("<html>");
            if (isSelected)
                sb.append("<style> a.val {text-decoration: underline; color: " + toRgbText(getForeground().getRGB()) + "} </style><body>");
            sb.append (line.substring (0, link.getStartOffset ()));
            sb.append ("<a class=\"val\" href=\"\">");
            sb.append (line.substring (link.getStartOffset (), link.getEndOffset ()));
            sb.append ("</a>");
            sb.append (line.substring (link.getEndOffset ()));
            sb.append ("</body></html>");
            setText (sb.toString ());
        } else
            setText (line.trim ());

        setEnabled (list.isEnabled ());

        Border border = null;
        if (cellHasFocus) {
            if (isSelected) {
                border = UIManager.getBorder ("List.focusSelectedCellHighlightBorder");
            }
            if (border == null) {
                border = UIManager.getBorder ("List.focusCellHighlightBorder");
            }
        } else {
            border = getNoFocusBorder ();
        }
        setBorder (border);

        return this;
    }
 
源代码3 项目: netbeans   文件: CheckBoxRenderrer.java
public Component getListCellRendererComponent (
    JList                   list,
    Object                  value,
    int                     index,
    boolean                 isSelected,
    boolean                 cellHasFocus
) {
    setComponentOrientation (list.getComponentOrientation ());

    Color bg = null;
    Color fg = null;

    JList.DropLocation dropLocation = list.getDropLocation ();
    if (dropLocation != null && !dropLocation.isInsert () && dropLocation.getIndex () == index) {

        bg = UIManager.getColor("List.dropCellBackground");
        fg = UIManager.getColor("List.dropCellForeground");

        isSelected = true;
    }

    if (isSelected) {
        setBackground (bg == null ? list.getSelectionBackground () : bg);
        setForeground (fg == null ? list.getSelectionForeground () : fg);
    } else {
        setBackground (list.getBackground ());
        setForeground (list.getForeground ());
    }

    String name = (String) value;
    setText (name.substring (1));
    setSelected (name.charAt (0) == '+');

    setEnabled (list.isEnabled ());
    setFont (list.getFont ());

    Border border = null;
    if (cellHasFocus) {
        if (isSelected) {
            border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
        }
        if (border == null) {
            border = UIManager.getBorder("List.focusCellHighlightBorder");
        }
    } else {
        border = getNoFocusBorder ();
    }
    if (border != null) { //#189786: rarely, the border is null - reasons are unknown
        setBorder (border);
    } else {
        Logger.getLogger(CheckBoxRenderrer.class.getName()).log(Level.INFO, "Cannot set any border");
    }

    return this;
}
 
源代码4 项目: netbeans   文件: CheckBoxRenderrer.java
public Component getListCellRendererComponent (
    JList                   list,
    Object                  value,
    int                     index,
    boolean                 isSelected,
    boolean                 cellHasFocus
) {
    setComponentOrientation (list.getComponentOrientation ());

    Color bg = null;
    Color fg = null;

    JList.DropLocation dropLocation = list.getDropLocation ();
    if (dropLocation != null && !dropLocation.isInsert () && dropLocation.getIndex () == index) {

        bg = UIManager.getColor("List.dropCellBackground");
        fg = UIManager.getColor("List.dropCellForeground");

        isSelected = true;
    }

    if (isSelected) {
        setBackground (bg == null ? list.getSelectionBackground () : bg);
        setForeground (fg == null ? list.getSelectionForeground () : fg);
    } else {
        setBackground (list.getBackground ());
        setForeground (list.getForeground ());
    }

    String name = (String) value;
    setText (name.substring (1));
    setSelected (name.charAt (0) == '+');

    setEnabled (list.isEnabled ());
    setFont (list.getFont ());

    Border border = null;
    if (cellHasFocus) {
        if (isSelected) {
            border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
        }
        if (border == null) {
            border = UIManager.getBorder("List.focusCellHighlightBorder");
        }
    } else {
        border = getNoFocusBorder ();
    }
    if (border != null) { //#189786: rarely, the border is null - reasons are unknown
        setBorder (border);
    } else {
        Logger.getLogger(CheckBoxRenderrer.class.getName()).log(Level.INFO, "Cannot set any border");
    }

    return this;
}