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

📄 jmguiabstractcontralpanel.java.svn-base

📁 梦界家园程序开发基底框架
💻 SVN-BASE
字号:
package jm.framework.gui.container;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.SwingConstants;

import jm.framework.gui.module.JMButton;
import jm.framework.gui.module.JMIcon;
import jm.framework.gui.module.JMLabel;
import jm.framework.gui.module.JMScrollPane;
import jm.util.JMCheck;
import jm.util.JMVector;

/**
 * <p>Title: JM 整合Swing控件,使用配置信息</p>
 *
 * <p>Copyright: Copyright (c) 2004-2006</p>
 *
 * <p>Company: 1SHome</p>
 *
 * <p>@author Spook</p>
 *
 * @since 1.3
 * @see JDK 1.5.0.6
 */
public abstract class JMGUIAbstractContralPanel extends JPanel implements JMContralComponent {
    private JMLabel NameLabel = new JMLabel();
    private JSplitPane JMSplitPaneLeft = new JSplitPane();
    private JSplitPane JMSplitPaneRight = new JSplitPane();
    private BorderLayout borderLayout = new BorderLayout();
    private JMButton CommandButton = new JMButton();
    private GridLayout gridLayout = new GridLayout();
    public JMGUIAbstractContralPanel (JComponent rootPanel) {
        RootPanel = rootPanel;
    }

    protected JComponent RootPanel = null;
    /**
     * 初始化
     */
    public void load () throws Exception {

        this.setLayout(borderLayout);
        /**
         * 设置 contentAreaFilled 属性。如果该属性为 true,则按钮将绘制内容区域。
         * 如果希望有一个透明的按钮,比如只是一个图标的按钮,那么应该将此属性设置为 false。
         * 不要调用 setOpaque(false)。
         * contentAreaFilled 属性的默认值为 true。
         */
        CommandButton.setContentAreaFilled(false);
        /**
         * setPressedIcon
         * 设置按钮的按下图标。
         * setSelectedIcon
         * 设置按钮的选择图标。
         * setRolloverIcon
         * 设置按钮的翻转图标。
         * setRolloverSelectedIcon
         * 设置按钮的翻转选择图标。
         * setDisabledIcon
         * 设置按钮的禁用图标。
         * setDisabledSelectedIcon
         * 设置按钮的禁用选择图标。
         */
        ////////////////////////////////////////////////////////////////////////
        if (RootPanel instanceof JMScrollPane) {

        } else {
            RootPanel.setLayout(gridLayout);
        }
        ////////////////////////////////////////////////////////////////////////
        JMSplitPaneLeft.add(NameLabel, JSplitPane.LEFT);
        int width = this.getWidth();
        if (width == 0) {
            width = 600;
        }
        JMSplitPaneLeft.setDividerLocation((int) (width * 0.25));

        if (HaveButton == true) {
            JMSplitPaneLeft.add(JMSplitPaneRight, JSplitPane.RIGHT);
            JMSplitPaneRight.add(RootPanel, JSplitPane.LEFT);
            JMSplitPaneRight.add(CommandButton, JSplitPane.RIGHT);
//            JMSplitPaneRight.setResizeWeight(1);
            JMSplitPaneRight.setDividerLocation((int) (width * 0.75 * 0.85));
        } else {
            JMSplitPaneLeft.add(RootPanel, JSplitPane.RIGHT);
        }
        ////////////////////////////////////////////////////////////////////////
        this.add(JMSplitPaneLeft, java.awt.BorderLayout.CENTER);
    }
    ////////////////////////////////////////////////////////////////////////////
    /**
     * 按钮点击操作
     * @param e ActionEvent
     */
    public void addCommandActionListener (JMGUIActionListener actionListener) {
        CommandButton.addActionListener(actionListener);
    }

    ////////////////////////////////////////////////////////////////////////////
    int Number = 1;
    public void setNumber (int number) {
        Number = number;
    }

    public int getNumber () {
        return Number;
    }

    ////////////////////////////////////////////////////////////////////////////
    /**
     * 允许自由改变大小
     * 设置 continuousLayout 属性的值,在用户干预期要使子组件连续地重新显示和布局子组件,此值必须为 true。
     * 此属性的默认值为 false。一些外观可能不支持连续布局;它们将忽略此属性。
     * @param splitDividerSize int
     */
    public void canResizeSplit (boolean canResizeSplit) {
        JMSplitPaneRight.setContinuousLayout(canResizeSplit);
        JMSplitPaneLeft.setContinuousLayout(canResizeSplit);
    }

    /**
     * 设置分隔条的大小
     * @param splitDividerSize int
     */
    public void setSplitDividerSize (int splitDividerSize) {
        JMSplitPaneLeft.setDividerSize(splitDividerSize);
        JMSplitPaneRight.setDividerSize(splitDividerSize);
    }

    ///////////////////////////////////////////////////////////////////////////
    /**
     * 设置显示控件的内容
     * @param value JMVector
     */
    /**
     * 设置显示控件的内容
     *
     * @param value JMVector
     * @todo Implement this jm.framework.gui.module.JMContralComponent method
     */
    public void setValue (String ...value) {
        Value = new JMVector<String>();
        if(value!=null)
        for (String _value_ : value) {
            Value.add(_value_);
        }
    }

    protected JMVector<String> Value = null;
    /**
     * 获得显示控件的内容
     * @return JMVector
     */
    public abstract JMVector<String> getValue ();

    protected Object DataSource = null;
    /**
     * 设置显示控件的数据源
     * @param value JMVector
     */
    public void setDataSource (Object dataSource) {
        DataSource = dataSource;
    }

    /**
     * 获得显示控件的数据源
     * @return JMVector
     */
    public Object getDataSource () {
        return DataSource;
    }

    ///////////////////////////////////////////////////////////////////////////
    protected JMVector<JComponent> ValueComponent = null;

    /**
     * 设置显示控件的类型
     *
     * @param valueComponent JMVector
     */
    public void setValueComponent (JComponent ...valueComponent) {
        ValueComponent = new JMVector<JComponent>();
        for (JComponent _valueComponent_ : valueComponent) {
            ValueComponent.add(_valueComponent_);
        }
    }

    /**
     * 获得显示控件的类型
     * @return JMVector
     */
    public JMVector<JComponent> getValueComponent () {
        return ValueComponent;

    }

    ///////////////////////////////////////////////////////////////////////////
    /**
     * 设置标签的名称
     * @param name String
     */
    public void setName (String name) {
        NameLabel.setText(name);
        NameLabel.setHorizontalAlignment(SwingConstants.RIGHT);
    }

    /**
     * 获得标签的名称
     * @return JMLabel
     */
    public JMLabel getNameComponent () {
        return NameLabel;
    }

    boolean HaveButton = false;
    /**
     * 设置补充控件(按钮)的显示图标,名称
     * @param imagePath String
     * @param buttonName String
     */
    public void setImageButton (String imagePath, String buttonName) {
        if (!JMCheck.isNull(imagePath)) {
            CommandButton.setIcon(new JMIcon(imagePath));
            HaveButton = true;
        }
        if (!JMCheck.isNull(buttonName)) {
            CommandButton.setText(buttonName);
            HaveButton = true;
        }
    }

    /**
     * 获得补充控件(按钮)
     * @return JMButton
     */
    public JMButton getButtonComponent () {
        return CommandButton;
    }

    ///////////////////////////////////////////////////////////////////////////
    /**
     * 当前项目是否必须
     */
    protected boolean Request = false;
    /**
     * 设置当前项目是否必须
     * @param request boolean
     */
    public void setRequest (boolean request) {
        Request = request;
    }

    public Color getRequestColor () {
        return Color.cyan;
    }

    /**
     * 获得当前项目是否必须
     * @return boolean
     */
    public boolean getRequest () {
        return Request;
    }

    /**
     * 当前项目的数据库关联字段
     */
    protected String DBField_ = "";
    /**
     * 设置当前项目的数据库关联字段
     * @param DBField String
     */
    public void setDBField (String DBField) {
        DBField_ = DBField;
    }

    /**
     * 获得当前项目的数据库关联字段
     * @return String
     */
    public String getDBField () {
        return DBField_;

    }

    /**
     * 当前项目的数据库关联表
     */
    protected String DBTable_ = "";

    /**
     * 设置当前项目的数据库关联表
     * @param DBTable String
     */
    public void setDBTable (String DBTable) {
        DBTable_ = DBTable;
    }

    /**
     * 获得当前项目的数据库关联表
     * @return String
     */
    public String getDBTable () {
        return DBTable_;
    }
}

⌨️ 快捷键说明

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