package calendarselector;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.border.Border;
public class DefaultCalendarRender implements CalendarRender, DefaultElementProperty {
protected JButton currentComponent;
//----------------普通状态下的日期元素属性----------------------
/**普通状态的日期元素的前景色*/
protected Color normalForeColor = NORMAL_FORE_COLOR;
/**普通状态的日期元素的背景色*/
protected Color normalBGColor = NORMAL_BGCOLOR_BGCOLOR;
/**普通状态下的边框*/
protected Border normalBorder = NORMAL_BORDER;
/**是否显示普通状态下的日期元素的背景色*/
protected boolean showNormalBGColor = false;
/**默认普通状态下不显示边框*/
protected boolean showNormalBorder = true;
//----------------鼠标滑过时的日期元素属性----------------------
protected HightLightListener hightLight = new HightLightListener();
/**鼠标滑过时日期元素显示的边框*/
protected Border overBorder = OVER_BORDER;
/**鼠标滑过时是否显示日期元素的边框*/
protected boolean showOverBorder = true;
/**鼠标滑过时日期元素显示的背景色*/
protected Color overBGColor = OVER_BGCOLOR;
/**鼠标滑过时是否显示日期元素的背景色*/
protected boolean showOverBGColor = false;
/**鼠标滑过时日期元素显示的前景色*/
protected Color overForeColor = OVER_FORE_COLOR;
/**鼠标滑过时是否显示日期元素的前景色*/
protected boolean showOverForeColor = true;
//----------------当前选中的日期元素属性----------------------
/**当前选中日期元素显示的边框*/
protected Border currentBorder = NORMAL_BORDER;
/**是否显示当前日期元素的边框*/
protected boolean showCurrentBorder = showNormalBorder;
/**当前选中日期元素显示的背景色*/
protected Color currentBGColor = CURRENT_BGCOLOR;
/**是否显示当前日期元素的背景色*/
protected boolean showCurrentBGColor = false;
/**当前选中日期元素显示的前景色*/
protected Color currentForeColor = CURRENT_FORE_COLOR;
/**是否显示当前日期元素的前景色*/
protected boolean showCurrentForeColor = true;
//----------------日期元素的初始大小和字体------------------
protected Dimension size = new Dimension(25, 20);
protected Insets margin = new Insets(2,2,2,2);
protected Font font = new Font("serif", Font.BOLD, 12);
/**
* 设置输标滑过时日期元素显示的边框
* @param border
*/
public void setOverBorder(Border border) {
if(border == null) { return; }
overBorder = border;
}
/**
* 鼠标滑过时是否显示日期元素的边框
* @param b
*/
public void setShowOverBorder(boolean b) {
showOverBorder = b;
}
/**
* 设置输标滑过时日期元素显示的背景色
* @param color
*/
public void setOverBGColor(Color color) {
if(color ==null) { return; }
overBGColor = color;
}
/**
* 鼠标滑过时是否显示日期元素的背景色
* @param b
*/
public void setShowOverBGColor(boolean b) {
showOverBGColor = b;
}
/**
* 设置输标滑过时日期元素显示的前景色
* @param color
*/
public void setOverForeColor(Color color) {
if(color == null) { return; }
overForeColor = color;
}
/**
* 鼠标滑过时是否显示日期元素的前景色
* @param b
*/
public void setShowOverForeColor(boolean b) {
showOverForeColor = b;
}
/**
* 设置当前选中日期元素显示的边框
* @param border
*/
public void setCurrentBorder(Border border) {
if(border == null) { return; }
currentBorder = border;
}
/**
* 是否显示当前日期元素的边框
* @param b
*/
public void setshowCurrentBorder(boolean b) {
showCurrentBorder = b;
}
/**
* 设置当前选中日期元素显示的背景色
* @param color
*/
public void setCurrentBGColor(Color color) {
if(color == null) { return; }
currentBGColor = color;
}
/**
* 是否显示当前日期元素的背景色
* @param b
*/
public void setShowCurrentBGColor(boolean b) {
showCurrentBGColor = b;
}
/**
* 设置当前选中日期元素显示的前景色
* @param color
*/
public void setCurrentForeColor(Color color) {
if(color == null) { return; }
currentForeColor = color;
}
/**
* 是否显示当前日期元素的前景色
* @param b
*/
public void setShowCurrentForeColor(boolean b) {
showCurrentForeColor = b;
}
/**
* 设置普通状态下的边框
* @param border
*/
public void setNormalBorder(Border border) {
if(border == null) { return; }
if(!showCurrentBorder || currentBorder == normalBorder) {
currentBorder = border;
}
normalBorder = border;
}
/**
* 设置普通状态下的日期元素的前景色
* @param color
*/
public void setNormalForeColor(Color color) {
if(color == null) { return; }
if(!showCurrentForeColor || currentForeColor == normalForeColor) {
currentForeColor = color;
}
normalForeColor = color;
}
/**
* 设置普通状态下的日期元素的背景色
* @param color
*/
public void setNormalBGColor(Color color) {
if(color == null) { return; }
if(!showCurrentBGColor || currentBGColor == normalBGColor) {
currentBGColor = color;
}
normalBGColor = color;
}
/**
* 设置是否显示普通状态下的日期元素的背景色
* @param b
*/
public void setShowNormalBGColor(boolean b) {
showNormalBGColor = b;
showCurrentBGColor ^= showNormalBGColor;
}
/**
* 设置普通状态下的字体
* @param f
*/
public void setNormalFont(Font f) {
if(f == null) { return; }
font = f;
}
/**
* 设置日期元素的文本和边框的距离
* @param insets
*/
public void setMargin(Insets insets) {
if(insets == null) { return; }
margin = insets;
}
/**
* 设置日期元素的初始大小
* @param d
*/
public void setElementSize(Dimension d) {
if(d == null) { return; }
size = d;
}
/**
* 设置正常状态的日期元素属性
* @param b
* @return
*/
protected JButton setNormalProperty(JButton b) {
if(b == null) { return null; }
b.setForeground(normalForeColor);
b.setBackground(normalBGColor);
b.setBorder(normalBorder);
b.setBorderPainted(showNormalBorder);
b.setContentAreaFilled(showNormalBGColor);
b.setFont(font);
b.setPreferredSize(size);
b.setMargin(margin);
b.setFocusPainted(false);
return b;
}
/**
* 设置鼠标滑过时日期元素的属性
* @param b
* @return
*/
protected JButton setOverProperty(JButton b) {
if(b == null) { return null; }
b.setForeground(overForeColor);
b.setBackground(overBGColor);
b.setBorder(overBorder);
b.setBorderPainted(showOverBorder);
b.setContentAreaFilled(showOverBGColor);
return b;
}
/**
* 设置当前选中的日期元素的属性
* @param b
* @return
*/
protected JButton setCurrentProperty(JButton b) {
if(b == null) { return null; }
b.setForeground(currentForeColor);
b.setBackground(currentBGColor);
b.setBorder(currentBorder);
b.setBorderPainted(showCurrentBorder);
b.setContentAreaFilled(showCurrentBGColor);
b.setFocusPainted(false);
return b;
}
/**鼠标滑过日期元素时的显示效果*/
protected class HightLightListener extends MouseAdapter {
@Override
public void mouseEntered(MouseEvent e) {
JButton b = (JButton)e.getSource();
b = setOverProperty(b);
}
@Override
public void mouseExited(MouseEvent e) {
JButton b = (JButton)e.getSource();
b = b == currentComponent ? setCurrentProperty(b)
: setNormalProperty(b);
}
}
@Override
public Component getComponent(String text, boolean isCurrent) {
JButton b = new JButton(text);
if(isCurrent) {
currentComponent = b;
b = setCurrentProperty(b);
} else {
b = setNormalProperty(b);
}
if(!text.equals("")) {
b.addMouseListener(hightLight);
}
return b;
}
@Override
public void setCurrentElement(Component oldCurrent, Component newCurrent) {
oldCurrent = setNorma
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
CalendarSelector.rar (25个子文件)
calendarlogic.jpg 141KB
calendarselector
CalendarPanelChangedListener.java 623B
UpdatedCalendarModelListener.java 466B
Mutex.java 2KB
CalendarPanelOfYears.java 3KB
ScrollDateListener.java 330B
CalendarKit.java 5KB
AbstractDateShower.java 1KB
CalendarResult.java 302B
DefaultElementProperty.java 1KB
AbstractCalendarModel.java 3KB
CurrentDateChangedListener.java 384B
UpdatedDateListener.java 269B
YearsGroup.java 765B
CalendarModelOfMonths.java 2KB
CalendarRender.java 620B
CalendarBook.java 5KB
DefaultCalendarModel.java 71B
DefaultDateShower.java 6KB
CalendarException.java 250B
CalendarSelector.java 8KB
DefaultCalendarRender.java 8KB
CalendarModelOfDays.java 2KB
CalendarModelOfYears.java 4KB
CalendarPanel.java 7KB
共 25 条
- 1
资源评论
- qingchunlaopo2014-03-28好像不能在当前窗口显示。。。找不到这个属性
kyousuke
- 粉丝: 38
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功