//选择时间
package com.date;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.Stroke;
import java.awt.Toolkit;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.PopupFactory;
import javax.swing.SwingUtilities;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
public class Chooser extends JPanel{
private static final long serialVersionUID = -5384012731547358720L;
private Calendar calendar;
private Calendar now = Calendar.getInstance();
private JPanel calendarPanel;
private java.awt.Font font = new java.awt.Font("Times",java.awt.Font.PLAIN,12);
private java.text.SimpleDateFormat sdf;
private final LabelManager lm = new LabelManager();
private javax.swing.Popup pop;
private TitlePanel titlePanel;
private BodyPanel bodyPanel;
private FooterPanel footerPanel;
private JComponent showDate;
private boolean isShow = false;
private static final String DEFAULTFORMAT = "yyyy-MM-dd";
private static final String[] showTEXT = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
private static WeekLabel[] weekLabels = new WeekLabel[7];
private static int defaultStartDAY = 0;//0 is from Sun, 1 is from Mon, 2 is from Tue
private static Color hoverColor = Color.BLUE; // hover color
private Chooser(java.util.Date date, String format, int startDAY){
if(startDAY > -1 && startDAY < 7) defaultStartDAY = startDAY;
int dayIndex = defaultStartDAY;
for(int i=0; i<7; i++){
if(dayIndex > 6) dayIndex = 0;
weekLabels[i] = new WeekLabel(dayIndex, showTEXT[dayIndex]);
dayIndex ++ ;
}
sdf = new java.text.SimpleDateFormat(format);
calendar = Calendar.getInstance();
calendar.setTime(date);
initCalendarPanel();
}
public static Chooser getInstance(java.util.Date date, String format){
return new Chooser(date, format, defaultStartDAY);
}
public static Chooser getInstance(java.util.Date date){
return getInstance(date, DEFAULTFORMAT);
}
public static Chooser getInstance(String format){
return getInstance(new java.util.Date(), format);
}
public static Chooser getInstance(){
return getInstance(new java.util.Date(), DEFAULTFORMAT);
}
private void initCalendarPanel(){
calendarPanel = new JPanel(new java.awt.BorderLayout());
calendarPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0xAA, 0xAA, 0xAA)));
calendarPanel.add(titlePanel = new TitlePanel(), java.awt.BorderLayout.NORTH);
calendarPanel.add(bodyPanel = new BodyPanel(), java.awt.BorderLayout.CENTER);
calendarPanel.add(footerPanel = new FooterPanel(),java.awt.BorderLayout.SOUTH);
this.addAncestorListener(new AncestorListener() {
public void ancestorAdded(AncestorEvent event) { }
public void ancestorRemoved(AncestorEvent event) {hidePanel();}
public void ancestorMoved(AncestorEvent event) {
hidePanel();
}
});
}
public void register(final JComponent showComponent) {
this.showDate = showComponent;
showComponent.setRequestFocusEnabled(true);
showComponent.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
showComponent.requestFocusInWindow();
}
});
this.add(showComponent, BorderLayout.CENTER);
this.setPreferredSize(new Dimension(90, 25));
this.setBorder(BorderFactory.createLineBorder(Color.GRAY));
showComponent.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent me) {
if (showComponent.isEnabled()) {
showComponent.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
}
public void mouseExited(MouseEvent me) {
if (showComponent.isEnabled()) {
showComponent.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
showComponent.setForeground(Color.BLACK);
}
}
public void mousePressed(MouseEvent me) {
if (showComponent.isEnabled()) {
showComponent.setForeground(hoverColor);
if (isShow) {
hidePanel();
} else {
showPanel(showComponent);
}
}
}
public void mouseReleased(MouseEvent me) {
if (showComponent.isEnabled()) {
showComponent.setForeground(Color.BLACK);
}
}
});
showComponent.addFocusListener(new FocusListener() {
public void focusLost(FocusEvent e) {
hidePanel();
}
public void focusGained(FocusEvent e) { }
});
}
//hide the main panel.
private void hidePanel() {
if (pop != null) {
isShow = false;
pop.hide();
pop = null;
}
}
//show the main panel.
private void showPanel(Component owner) {
if (pop != null) pop.hide();
Point show = new Point(0, showDate.getHeight());
SwingUtilities.convertPointToScreen(show, showDate);
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
int x = show.x;
int y = show.y;
if (x < 0) x = 0;
if (x > size.width - 212) x = size.width - 212;
if (y > size.height - 167) y -= 165;
pop = PopupFactory.getSharedInstance().getPopup(owner, calendarPanel, x, y);
pop.show();
isShow = true;
}
private void commit() {
if (showDate instanceof JTextField) {
((JTextField) showDate).setText(sdf.format(calendar.getTime()));
}else if (showDate instanceof JLabel) {
((JLabel) showDate).setText(sdf.format(calendar.getTime()));
}
hidePanel();
}
private class TitlePanel extends JPanel {
private static final long serialVersionUID = -2865282186037420798L;
private JLabel preYear,preMonth,center,nextMonth,nextYear,centercontainer;
public TitlePanel(){
super(new java.awt.BorderLayout());
this.setBackground(new java.awt.Color(190, 200, 200));
initTitlePanel();
}
private void initTitlePanel(){
preYear = new JLabel("<<", JLabel.CENTER);
preMonth = new JLabel("<", JLabel.CENTER);
center = new JLabel("", JLabel.CENTER);
centercontainer = new JLabel("", JLabel.CENTER);
nextMonth = new JLabel(">", JLabel.CENTER);
nextYear = new JLabel(">>", JLabel.CENTER);
preYear.setToolTipText("Last Year");
preMonth.setToolTipText("Last Month");
nextMonth.setToolTipText("Next Month");
nextYear.setToolTipText("Next Year");
preYea
没有合适的资源?快使用搜索试试~ 我知道了~
java+swing+mysql实现的学生信息管理系统.zip
共114个文件
class:72个
java:20个
png:13个
5星 · 超过95%的资源 需积分: 48 88 下载量 61 浏览量
2020-07-30
16:27:46
上传
评论 17
收藏 952KB ZIP 举报
温馨提示
java swing 并且连接数据库实现的学生信息管理系统,实现了注册、登录界面以及学生、班级、年级信息的增删改查等等; 在做java实训时可以用到, 实训时可以做老师给的网上商城项目也可以随便写一个。
资源详情
资源评论
资源推荐
收起资源包目录
java+swing+mysql实现的学生信息管理系统.zip (114个子文件)
StudentManageInterFrm.class 14KB
ClassManageInterFrm.class 13KB
GradeManageInterFrm.class 11KB
StudentAddInterFrm.class 9KB
StuManageLog.class 9KB
Chooser.class 8KB
classAddInterFrm.class 8KB
MainFrm.class 7KB
gradeAddInterFrm.class 6KB
ManagerReginterJD.class 6KB
Chooser$DayLabel.class 5KB
StudentDao.class 4KB
SchoolClassDao.class 4KB
GradeDao.class 3KB
Chooser$TitlePanel.class 3KB
Chooser$BodyPanel.class 2KB
Student.class 2KB
SchoolClass.class 2KB
ManagerDao.class 2KB
Chooser$LabelManager.class 2KB
DbUtil.class 2KB
Chooser$FooterPanel$1.class 2KB
Chooser$TitlePanel$MyMouseAdapter.class 2KB
Chooser$FooterPanel.class 2KB
Chooser$3.class 2KB
Manager.class 1KB
Grade.class 1KB
StudentManageInterFrm$1.class 945B
ClassManageInterFrm$1.class 919B
GradeManageInterFrm$1.class 903B
Chooser$1.class 867B
StudentManageInterFrm$3.class 824B
StudentManageInterFrm$5.class 824B
StudentManageInterFrm$6.class 824B
StudentManageInterFrm$4.class 824B
GradeManageInterFrm$6.class 810B
ClassManageInterFrm$6.class 810B
ClassManageInterFrm$4.class 810B
GradeManageInterFrm$5.class 810B
GradeManageInterFrm$4.class 810B
ClassManageInterFrm$3.class 810B
ClassManageInterFrm$5.class 810B
GradeManageInterFrm$3.class 810B
Chooser$2.class 806B
StudentAddInterFrm$2.class 803B
StudentAddInterFrm$3.class 803B
StudentAddInterFrm$1.class 803B
ManagerReginterJD$1.class 796B
ManagerReginterJD$2.class 796B
StudentManageInterFrm$2.class 792B
gradeAddInterFrm$2.class 789B
gradeAddInterFrm$1.class 789B
classAddInterFrm$2.class 789B
classAddInterFrm$1.class 789B
GradeManageInterFrm$2.class 778B
ClassManageInterFrm$2.class 778B
Chooser$4.class 768B
StuManageLog$4.class 761B
StuManageLog$3.class 761B
StuManageLog$2.class 761B
StuManageLog$1.class 734B
MainFrm$4.class 726B
MainFrm$5.class 726B
MainFrm$3.class 726B
MainFrm$7.class 726B
MainFrm$2.class 726B
MainFrm$1.class 726B
MainFrm$6.class 726B
Chooser$WeekLabel.class 722B
StringUtil.class 616B
StuManageLog$5.class 545B
MainFrm$8.class 525B
.classpath 601B
log.gif 9KB
reset.gif 1KB
mysql-connector-java-5.1.13-bin.jar 750KB
swing-layout-1.0.3.jar 115KB
AbsoluteLayout.jar 3KB
Chooser.java 21KB
StudentManageInterFrm.java 16KB
ClassManageInterFrm.java 13KB
StuManageLog.java 11KB
GradeManageInterFrm.java 11KB
StudentAddInterFrm.java 10KB
ManagerReginterJD.java 7KB
MainFrm.java 7KB
classAddInterFrm.java 6KB
gradeAddInterFrm.java 6KB
StudentDao.java 4KB
SchoolClassDao.java 3KB
GradeDao.java 2KB
Student.java 2KB
SchoolClass.java 1KB
ManagerDao.java 1KB
DbUtil.java 956B
Manager.java 790B
Grade.java 759B
StringUtil.java 322B
Teacher.png 8KB
graderepair.png 2KB
共 114 条
- 1
- 2
PalpitateJM
- 粉丝: 44
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5