📄 jmguiabstractcontralpanel.java.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 + -