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

📄 jgroupcontainer.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
字号:
package flow.graph.gui.tools;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;

public class JGroupContainer
    extends JPanel {
    private SimpleButton bttGroupTitle = new SimpleButton("");
    private JPanel pMembers = new JPanel();
    private JScrollPane sp;
	private Object userObject;
	
    public JGroupContainer() {
        this("");
    }

    public JGroupContainer(String name) {
        //this(name, UIManager.getColor("Desktop.background"));
        this(name, Color.LIGHT_GRAY);
    }

    /**
     * @param name String  组名
     * @param background Color 成员组件所在面板背景色
     */
    public JGroupContainer(String name, Color background) {
        bttGroupTitle.setText(name);
        bttGroupTitle.setFocusable(false);
        pMembers.setLayout(new GroupLayout(1, 1));
        this.setLayout(new BorderLayout());
        this.add(bttGroupTitle, BorderLayout.NORTH);

        pMembers.setBackground(background);

        Color thumbColor = UIManager.getColor("ScrollBar.thumb");
        Color trackColor = UIManager.getColor("ScrollBar.track");
        Color trackHighlightColor = UIManager.getColor(
            "ScrollBar.trackHighlight");

        UIManager.put("ScrollBar.thumb", background);
        UIManager.put("ScrollBar.track", background);
        UIManager.put("ScrollBar.trackHighlight", background);
        sp = new JScrollPane(pMembers);
        sp.setHorizontalScrollBarPolicy(
            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        this.add(sp, BorderLayout.CENTER);
        collapse();
        UIManager.put("ScrollBar.thumb", thumbColor);
        UIManager.put("ScrollBar.track", trackColor);
        UIManager.put("ScrollBar.trackHighlight", trackHighlightColor);

    }

    /**
     * 设置间距
     * @param hgap int 横间距
     * @param vgap int 竖间距
     */
    public void setMemberGap(int hgap, int vgap) {
        pMembers.setLayout(new GroupLayout(hgap, vgap));
    }

    /**
     * 取得组的标题按钮
     * @return JButton
     */
    public SimpleButton getTitleButton() {
        return bttGroupTitle;
    }

    /**
     * 取得组的成员组件面板
     * @return JPanel
     */
    public JPanel getMembersContainer() {
        return pMembers;
    }

    /**
     * 收缩组
     */
    public void collapse() {
        sp.setVisible(false);
        this.revalidate();
    }

    /**
     * 展开组
     */
    public void expand() {
        sp.setVisible(true);
        this.revalidate();
    }

    /**
     * 设置组名
     * @param name String 组名
     */
    public void setName(String name) {
        bttGroupTitle.setText(name);
    }

    /**
     * 取得组名
     * @return String
     */
    public String getName() {
        return bttGroupTitle.getText();
    }

    /**
     * 添加一个成员组件
     * @param index int 顺序号
     * @param c Component 成员组件
     */
    public void addMember(int index, Component c) {
        pMembers.add(c, index);
        pMembers.doLayout();
    }
	
	public void addUserObject(Object obj){
		userObject = obj;
	}
	
	public Object getUserObject(){
		return userObject;
	}

    /**
     * 删除一个成员组件
     * @param index int 顺序号
     */
    public void removeMember(int index) {
        pMembers.remove(index);
        pMembers.doLayout();
    }

    /**
     * 取得一个成员组件
     * @param index int 顺序号
     * @return Component 成员组件
     */
    public Component getMember(int index) {
        return pMembers.getComponent(index);
    }

    /**
     * 取得全部成员组件
     * @return Component[] 成员组件
     */
    public Component[] getMembers() {
        Component coms[] = new Component[getMemberCount()];
        for (int i = 0; i < coms.length; i++) {
            coms[i] = pMembers.getComponent(i);
        }
        return coms;
    }

    /**
     * 取得成员组件总数
     * @return int 总数
     */
    public int getMemberCount() {
        return pMembers.getComponentCount();
    }

    /**
     * 重写的toString方法
     * @return String
     */
    public String toString() {
        return getName();
    }
}

⌨️ 快捷键说明

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