⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jscrollpaneadapter.java

📁 SWING的界面UI包 SWING的界面UI包
💻 JAVA
字号:
/*
 * JScrollPaneAdapter.java
 *
 * Created on 2007年5月4日, 上午2:07
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package dyno.swing.designer.beans.adapters.container;

import dyno.swing.designer.beans.Constants;
import dyno.swing.designer.beans.HoverPainter;
import dyno.swing.designer.beans.SpecialContainerAdapter;
import dyno.swing.designer.beans.SwingDesigner;
import dyno.swing.designer.beans.Util;
import dyno.swing.designer.beans.painters.ScrollPanePainter;
import java.awt.Component;
import java.awt.Container;
import javax.swing.JScrollPane;
import javax.swing.JViewport;


/**
 *
 * @author William Chen
 */
public class JScrollPaneAdapter extends AbstractContainerAdapter implements SpecialContainerAdapter {

    /** Creates a new instance of JScrollPaneAdapter */
    public JScrollPaneAdapter(SwingDesigner designer, Component component) {
        super(designer, component);
    }

    public HoverPainter getPainter() {
        return new ScrollPanePainter(designer, (Container) component);
    }

    protected boolean addBean(Container container, Component bean, int x, int y) {
        if (isAcceptable(container)) {
            JScrollPane scrollPane = (JScrollPane) container;
            if (isScrollPaneComponent(bean)) {
                JScrollPane sp = (JScrollPane) bean;
                JViewport view = sp.getViewport();
                Component viewComponent = view.getView();
                scrollPane.setViewportView(viewComponent);
                viewComponent.addNotify();
            } else {
                scrollPane.setViewportView(bean);
                bean.addNotify();
            }
            return true;
        } else {
            return false;
        }
    }

    private boolean isScrollPaneComponent(Component bean) {
        if (bean instanceof JScrollPane) {
            JScrollPane sp = (JScrollPane) bean;
            JViewport view = sp.getViewport();
            if(view==null)
                return false;
            else{
                Component viewComponent=view.getView();
                return Util.isDesigning(viewComponent);
            }
        } else {
            return false;
        }
    }

    private static boolean isAcceptable(Container container) {
        JScrollPane scrollPane = (JScrollPane) container;

        return scrollPane.getViewport().getView() == null;
    }

    public int getIndexOfChild(Component child) {
        JScrollPane scrollPane = (JScrollPane) component;
        Component component = scrollPane.getViewport().getView();

        if (component == child) {
            return 0;
        }

        return -1;
    }

    public int getChildCount() {
        JScrollPane scrollPane = (JScrollPane) component;
        Component component = scrollPane.getViewport().getView();

        if (component == null) {
            return 0;
        }

        if (!Util.isDesigning(component)) {
            return 0;
        }

        return 1;
    }

    public Component getChild(int index) {
        if ((index < 0) || (index > 1)) {
            return null;
        }

        JScrollPane scrollPane = (JScrollPane) component;
        Component component = scrollPane.getViewport().getView();

        return component;
    }

    public void addNextComponent(Component dragged) {
        JScrollPane sp = (JScrollPane) component;
        sp.getViewport().setView(dragged);
    }

    public void addBefore(Component target, Component added) {
        ((JScrollPane) component).setViewportView(added);
    }

    public void addAfter(Component target, Component added) {
        ((JScrollPane) component).setViewportView(added);
    }

    public boolean canAcceptMoreComponent() {
        JScrollPane sp = (JScrollPane) component;
        Component comp = sp.getViewport().getView();

        return comp == null || !Util.isDesigning(comp);
    }

    public boolean canAddBefore(Component hovering) {
        return canAcceptMoreComponent();
    }

    public boolean canAddAfter(Component hovering) {
        return canAcceptMoreComponent();
    }

    @Override
    public void removeComponent(Component bean) {
        JScrollPane jsp = (JScrollPane) component;
        jsp.getViewport().setView(null);
        jsp.setColumnHeader(null);
        jsp.setRowHeader(null);
        bean.removeNotify();
    }

    @Override
    public String getAddComponentCode(Component bean) {
        String beanName=Util.getComponentName(bean);
        return Constants.VAR_CONTAINER+".setViewportView("+Util.getGetName(beanName)+"());\n";
    }    
}

⌨️ 快捷键说明

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