没有类似vc的那种很好的控件
只有一个可以得到日期属性的Calendar class
我曾经参考一位网友给的信息,自己写了个难看的日期控件,你可以看看
返回时间参数形式可按自个需求改改package alpha;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.lang.*;
/**
* 作者:alphazhao
* 日期:2002-6-5
* 描述:设定日期调用,进入参数为存放时间的文本框
* 此界面无快捷键
* */public class DatePopup extends JDialog implements ActionListener {
//private Color color = SystemColor.text;
private Font font14 = new Font("Dialog", 0, 14);//统一字体
private Font font12 = new Font("Dialog", 0, 12);
private JPanel mPanel1 = new JPanel();
private JPanel mPanel2 = new JPanel();
private JPanel mPanel3 = new JPanel();
private JPanel mPanel4 = new JPanel();
private JButton mNewButton;
private JTextField mText;
private int mDay;
private int mMonth;
private int mYear;
private int mTheDate;
private int i = 0;
private int j = 0;
private JLabel JLabel1 = new JLabel("一",SwingConstants.CENTER);//星期
private JLabel JLabel2 = new JLabel("二",SwingConstants.CENTER);
private JLabel JLabel3 = new JLabel("三",SwingConstants.CENTER);
private JLabel JLabel4 = new JLabel("四",SwingConstants.CENTER);
private JLabel JLabel5 = new JLabel("五",SwingConstants.CENTER);
private JLabel JLabel6 = new JLabel("六",SwingConstants.CENTER);
private JLabel JLabel7 = new JLabel("日",SwingConstants.CENTER); public DatePopup(Dialog owner, boolean modal, JTextField pText) {
super(owner, modal);
this.mText = pText;
try {
JLabel1.setFont(font14);
JLabel2.setFont(font14);
JLabel3.setFont(font14);
JLabel4.setFont(font14);
JLabel5.setFont(font14);
JLabel6.setFont(font14);
JLabel7.setFont(font14);
this.setTitle("选定待查日期");
this.setResizable(false);
DatePopupInit();
pack();
CenterShowDialog cs = new CenterShowDialog(this);
}
catch(Exception e) {
e.printStackTrace();
}
} /**
* 控件的初始化方法。
*/
private void DatePopupInit() {
//设置主窗口布局
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
mPanel1.setLayout(new BorderLayout());
mPanel1.setBorder(new TitledBorder(BorderFactory.createLineBorder(Color.white,1),"DATE"));
//mPanel1.setBackground(color);
Calendar nowCalendar = Calendar.getInstance();
this.mTheDate = nowCalendar.get(Calendar.DAY_OF_WEEK);
this.mDay = nowCalendar.get(Calendar.DAY_OF_MONTH);
this.mMonth = nowCalendar.get(Calendar.MONTH);
this.mYear = nowCalendar.get(Calendar.YEAR); //设置mPanel2
JComboBox comboMonth = new JComboBox();
comboMonth.setActionCommand("MonthSelect");
//comboMonth.setBackground(color);
comboMonth.setFont(font12);
for(i=1;i<=12;i++) {
comboMonth.addItem(i+"月");
if(i==(this.mMonth+1)) {
comboMonth.setSelectedItem(i+"月");
}
}
comboMonth.addActionListener(this);
JComboBox comboYear = new JComboBox(); comboYear.setActionCommand("YearSelect");
//comboYear.setBackground(color);
comboYear.setFont(font12);
//设定年份
for(i=1950;i<=2050;i++) {
comboYear.addItem(i+"年");
if(i==this.mYear) {
comboYear.setSelectedItem(i+"年");
}
}
comboYear.addActionListener(this);
mPanel2.setLayout(new FlowLayout());
//mPanel2.setBackground(color);
mPanel2.add(comboMonth);
mPanel2.add(comboYear);
mPanel1.add(mPanel2,BorderLayout.NORTH); //设置mPanel3
mPanel3.setLayout(new GridLayout(7,7));
//mPanel3.setBackground(color);
mPanel3.add(JLabel7);
mPanel3.add(JLabel1);
mPanel3.add(JLabel2);
mPanel3.add(JLabel3);
mPanel3.add(JLabel4);
mPanel3.add(JLabel5);
mPanel3.add(JLabel6);
//日历制作
Calendar calendar1 = Calendar.getInstance();
calendar1.set(this.mYear,this.mMonth+1,1);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(this.mYear,this.mMonth,1);
int daysOfMonth;
if(this.mMonth==11) {
daysOfMonth = 31;
}
else {
daysOfMonth = calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR);
}
int firstDay = calendar2.get(Calendar.DAY_OF_WEEK);
for(i=1;i<43;i++) {
if(((i==firstDay)||(j!=0))&&(j<daysOfMonth)) {
j++;
mNewButton = new JButton((new String()).valueOf(j));
if(j==this.mDay) {
mNewButton.setSelected(true);
mNewButton.setEnabled(false);
mNewButton.setBackground(new Color(84,215,4));
}
mNewButton.addActionListener(this);
mPanel3.add(mNewButton);
}
else {
mPanel3.add(new JLabel());
}
}
mPanel1.add(mPanel3,BorderLayout.CENTER);
只有一个可以得到日期属性的Calendar class
我曾经参考一位网友给的信息,自己写了个难看的日期控件,你可以看看
返回时间参数形式可按自个需求改改package alpha;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.lang.*;
/**
* 作者:alphazhao
* 日期:2002-6-5
* 描述:设定日期调用,进入参数为存放时间的文本框
* 此界面无快捷键
* */public class DatePopup extends JDialog implements ActionListener {
//private Color color = SystemColor.text;
private Font font14 = new Font("Dialog", 0, 14);//统一字体
private Font font12 = new Font("Dialog", 0, 12);
private JPanel mPanel1 = new JPanel();
private JPanel mPanel2 = new JPanel();
private JPanel mPanel3 = new JPanel();
private JPanel mPanel4 = new JPanel();
private JButton mNewButton;
private JTextField mText;
private int mDay;
private int mMonth;
private int mYear;
private int mTheDate;
private int i = 0;
private int j = 0;
private JLabel JLabel1 = new JLabel("一",SwingConstants.CENTER);//星期
private JLabel JLabel2 = new JLabel("二",SwingConstants.CENTER);
private JLabel JLabel3 = new JLabel("三",SwingConstants.CENTER);
private JLabel JLabel4 = new JLabel("四",SwingConstants.CENTER);
private JLabel JLabel5 = new JLabel("五",SwingConstants.CENTER);
private JLabel JLabel6 = new JLabel("六",SwingConstants.CENTER);
private JLabel JLabel7 = new JLabel("日",SwingConstants.CENTER); public DatePopup(Dialog owner, boolean modal, JTextField pText) {
super(owner, modal);
this.mText = pText;
try {
JLabel1.setFont(font14);
JLabel2.setFont(font14);
JLabel3.setFont(font14);
JLabel4.setFont(font14);
JLabel5.setFont(font14);
JLabel6.setFont(font14);
JLabel7.setFont(font14);
this.setTitle("选定待查日期");
this.setResizable(false);
DatePopupInit();
pack();
CenterShowDialog cs = new CenterShowDialog(this);
}
catch(Exception e) {
e.printStackTrace();
}
} /**
* 控件的初始化方法。
*/
private void DatePopupInit() {
//设置主窗口布局
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
mPanel1.setLayout(new BorderLayout());
mPanel1.setBorder(new TitledBorder(BorderFactory.createLineBorder(Color.white,1),"DATE"));
//mPanel1.setBackground(color);
Calendar nowCalendar = Calendar.getInstance();
this.mTheDate = nowCalendar.get(Calendar.DAY_OF_WEEK);
this.mDay = nowCalendar.get(Calendar.DAY_OF_MONTH);
this.mMonth = nowCalendar.get(Calendar.MONTH);
this.mYear = nowCalendar.get(Calendar.YEAR); //设置mPanel2
JComboBox comboMonth = new JComboBox();
comboMonth.setActionCommand("MonthSelect");
//comboMonth.setBackground(color);
comboMonth.setFont(font12);
for(i=1;i<=12;i++) {
comboMonth.addItem(i+"月");
if(i==(this.mMonth+1)) {
comboMonth.setSelectedItem(i+"月");
}
}
comboMonth.addActionListener(this);
JComboBox comboYear = new JComboBox(); comboYear.setActionCommand("YearSelect");
//comboYear.setBackground(color);
comboYear.setFont(font12);
//设定年份
for(i=1950;i<=2050;i++) {
comboYear.addItem(i+"年");
if(i==this.mYear) {
comboYear.setSelectedItem(i+"年");
}
}
comboYear.addActionListener(this);
mPanel2.setLayout(new FlowLayout());
//mPanel2.setBackground(color);
mPanel2.add(comboMonth);
mPanel2.add(comboYear);
mPanel1.add(mPanel2,BorderLayout.NORTH); //设置mPanel3
mPanel3.setLayout(new GridLayout(7,7));
//mPanel3.setBackground(color);
mPanel3.add(JLabel7);
mPanel3.add(JLabel1);
mPanel3.add(JLabel2);
mPanel3.add(JLabel3);
mPanel3.add(JLabel4);
mPanel3.add(JLabel5);
mPanel3.add(JLabel6);
//日历制作
Calendar calendar1 = Calendar.getInstance();
calendar1.set(this.mYear,this.mMonth+1,1);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(this.mYear,this.mMonth,1);
int daysOfMonth;
if(this.mMonth==11) {
daysOfMonth = 31;
}
else {
daysOfMonth = calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR);
}
int firstDay = calendar2.get(Calendar.DAY_OF_WEEK);
for(i=1;i<43;i++) {
if(((i==firstDay)||(j!=0))&&(j<daysOfMonth)) {
j++;
mNewButton = new JButton((new String()).valueOf(j));
if(j==this.mDay) {
mNewButton.setSelected(true);
mNewButton.setEnabled(false);
mNewButton.setBackground(new Color(84,215,4));
}
mNewButton.addActionListener(this);
mPanel3.add(mNewButton);
}
else {
mPanel3.add(new JLabel());
}
}
mPanel1.add(mPanel3,BorderLayout.CENTER);
解决方案 »
- 用java如何实现电子邮件客户端
- 用jdbc怎么删除想关联的主从表
- 接口,类,以及构造函数的问题,好复杂!
- 关于struts中无法找到Action的问题,谢谢解答!!
- 求swt-designerv4.3.0GA的注册码
- 跪求数据库高手!
- 求救一个关于RunnableJar的问题
- 线程的wait ,notify,synchronized问题,请帮忙分析一小段程序,小弟不胜感激(特别是ajiao)
- Java的文件锁,FileLock一定要与RandomAccessFile一起使用吗?
- jsp无法解析函数
- 关于JAVA易用性的疑问???????各位发表一下意见
- 请问哪里有JDK API 中文版 下载?
JButton confirmButton = new JButton("确定");
//confirmButton.setBorder(BorderFactory.createRaisedBevelBorder());
confirmButton.setFont(font14);
//confirmButton.setBackground(color);
confirmButton.setActionCommand("confirm");
confirmButton.addActionListener(this);
JButton cancelButton = new JButton("取消");
cancelButton.setFont(font14);
//cancelButton.setBackground(color);
cancelButton.setActionCommand("cancel");
cancelButton.addActionListener(this);
mPanel4.setLayout(new FlowLayout());
mPanel4.add(confirmButton);
mPanel4.add(cancelButton);
//mPanel4.setBackground(color); //设置contentpane
contentPane.add(mPanel1,BorderLayout.CENTER);
contentPane.add(mPanel4,BorderLayout.SOUTH);
//contentPane.setBackground(color);
} //监听事件响应。
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
Object obj = e.getSource();
String temp = "";
if(cmd.equals("MonthSelect")) {
JComboBox comMonth = (JComboBox)obj;
temp = comMonth.getSelectedItem().toString();
temp = temp.substring(0,temp.length()-1);
int tempMonth = Integer.parseInt(temp);
this.mMonth = tempMonth-1;
mypaint();
}
else if(cmd.equals("YearSelect")) {
JComboBox comYear = (JComboBox)obj;
temp = comYear.getSelectedItem().toString();
temp = temp.substring(0,4);
int tempYear = Integer.parseInt(temp);
this.mYear = tempYear;
mypaint();
}
else if(cmd.equals("confirm")) {//计算返回年月日
String pFinalDate = "";
if(this.mMonth<9) {
pFinalDate = this.mYear + "年0" +(this.mMonth+1);
}
else {
pFinalDate = this.mYear + "年" + (this.mMonth+1);
}
if(this.mDay<10) {
pFinalDate = pFinalDate + "月0"+ this.mDay + "日";
}
else {
pFinalDate = pFinalDate + "月"+ this.mDay + "日";
}
this.mText.setText(pFinalDate);//返回结果日期
this.dispose();
}
else if(cmd.equals("cancel")) {
this.dispose();
}
else {
int tempDay = Integer.parseInt(cmd);
this.mDay = tempDay;
mypaint();
//System.out.println(cmd);
}
} /**
* 控件重新布局方法。
*/
private void mypaint() {
this.invalidate();
mPanel3.removeAll();
mPanel3.setLayout(new GridLayout(7,7));
//mPanel3.setBackground(color);
mPanel3.add(JLabel7);
mPanel3.add(JLabel1);
mPanel3.add(JLabel2);
mPanel3.add(JLabel3);
mPanel3.add(JLabel4);
mPanel3.add(JLabel5);
mPanel3.add(JLabel6);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(this.mYear,this.mMonth+1,1);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(this.mYear,this.mMonth,1);
int daysOfMonth;
if(this.mMonth==11) {
daysOfMonth = 31;
}
else {
daysOfMonth = calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR);
}
int firstDay = calendar2.get(Calendar.DAY_OF_WEEK);
j = 0;
for(i=1;i<43;i++) {
if(((i==firstDay)||(j!=0))&&(j<daysOfMonth)) {
j++;
mNewButton = new JButton((new String()).valueOf(j));
if(j==this.mDay) {
mNewButton.setSelected(true);
mNewButton.setEnabled(false);
mNewButton.setBackground(new Color(84,215,4));
}
mNewButton.addActionListener(this);
mPanel3.add(mNewButton);
}
else {
mPanel3.add(new JLabel());
}
}
mPanel1.add(mPanel3,BorderLayout.CENTER);
this.validate();
}
}
CenterShowDialog 是什么?
我也给你,如下:
package alpha;
import java.awt.*;
/**
* 作者:alpha
* 日期:2002-5-24
* 描述:进入参数Dialog,使显示的图形界面显示居中
* */public class CenterShowDialog {
// public CenterShowFrame(Frame frame) {
// 若为frame改所有dialog字段为frame
public CenterShowDialog(Dialog dialog) {//目标显示为对话框
dialog.setResizable(false);//不准最大化
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension dialogSize = dialog.getSize();
if (dialogSize.height > screenSize.height) {
dialogSize.height = screenSize.height;
}
if (dialogSize.width > screenSize.width) {
dialogSize.width = screenSize.width;
}
dialog.setLocation((screenSize.width - dialogSize.width) / 2,
(screenSize.height - dialogSize.height) / 2);
}
}
//end
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import com.borland.jbcl.control.*;
import java.util.Calendar ;
import jclass.bwt.* ;
import javax.swing.table.*;class Date_eq extends JDialog {
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
Border border1;
JTextField bm = new JTextField(); GroupBox groupBox1 = new GroupBox();
BorderLayout borderLayout1 = new BorderLayout();
GridLayout gridLayout2 = new GridLayout();
JPanel jPanel2 = new JPanel();
BorderLayout borderLayout2 = new BorderLayout();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
JComboBox month = new JComboBox();
FlowLayout flowLayout1 = new FlowLayout();
FlowLayout flowLayout2 = new FlowLayout();
JPanel jPanel5 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
GridLayout gridLayout3 = new GridLayout();
Date_JTable jTable_date = new Date_JTable();
JCSpinBox year = new JCSpinBox();
String[] days = new String[42];
String[][] day = new String[6][7];
Calendar thisMonth = Calendar.getInstance();
String[] week = new String[7];
String[][] Data = new String[6][7];
int int_height = 0;
int intYear = 0 , intMonth = 0 , intDay = 0 ;
boolean flag = false;
String strSelectText = "" ;// public boolean result = false ;
public int result ;
public String date = null;
GridLayout gridLayout1 = new GridLayout();
JPanel jPanel1 = new JPanel();
public JLabel jLabel1 = new JLabel();
public Date_eq(Frame frame, String title, boolean modal , String strSelectText ) {
super(frame, title, modal);
try {
if(!(String.valueOf (strSelectText).equals ("null")))
this.strSelectText = strSelectText ;
jbInit();
}
catch (Exception e) {
JOptionPane.showMessageDialog ( this , e.getMessage () , "ERRor" , JOptionPane.ERROR_MESSAGE ) ;
e.printStackTrace();
} pack();
} public Date_eq(Frame frame, String title, boolean modal) {
this(frame, title, modal, "");
} public Date_eq(Frame frame) {
this(frame, "", false , "" );
} private void jbInit() throws Exception {
week[0] = "星期日";
week[1] = "星期一";
week[2] = "星期二";
week[3] = "星期三";
week[4] = "星期四";
week[5] = "星期五";
week[6] = "星期六";
for (int i = 0 ; i < 42 ; i++){
int x = i/7;
int y = i - (x)*7;
day[x][y] = "";
}
border1 = BorderFactory.createRaisedBevelBorder();
panel2.setBorder(BorderFactory.createLineBorder(Color.black));
panel2.setLayout(gridLayout2);
this.addWindowListener(new Date_eq_this_windowAdapter(this));
panel1.setLayout(gridLayout1);
groupBox1.setLayout(borderLayout1);
jPanel2.setLayout(borderLayout2);
jPanel4.setLayout(flowLayout1);
flowLayout1.setVgap(2);
jPanel3.setLayout(flowLayout2);
flowLayout2.setVgap(0);
month.setPreferredSize(new Dimension(78, 24));
month.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) {
month_itemStateChanged(e);
}
});
jPanel5.setLayout(gridLayout3);
gridLayout3.setVgap(2);
//bm.setPreferredSize(new Dimension(100, 30));
year.setPreferredSize(new Dimension(56, 26));
year.setInsets(new java.awt.Insets(0,0,0,12));
year.setMinimumSize(new Dimension(20, 10));
year.setColumns(3);
year.setHighlightThickness(0);
year.setMaximum(2100);
year.setMaximumLength(2100);
year.setMinimum(1900);
year.setText("2000");
year.addTextListener(new jclass.bwt.JCTextAdapter() { public void textValueChangeEnd(JCTextEvent e) {
year_textValueChangeEnd(e);
}
});
year.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(MouseEvent e) {
year_mouseReleased(e);
} });
year.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(KeyEvent e) {
year_keyReleased(e);
}
});
bm.setHorizontalAlignment(SwingConstants.CENTER);
jTable_date.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) {
jTable_date_mouseClicked(e);
}
}); groupBox1.addComponentListener(new java.awt.event.ComponentAdapter() { public void componentResized(ComponentEvent e) {
groupBox1_componentResized(e);
}
});
panel1.setMinimumSize(new Dimension(330, 200));
panel1.setPreferredSize(new Dimension(330, 200));
panel1.add(panel2, null);
panel2.add(groupBox1, null);
groupBox1.add(jPanel2, BorderLayout.NORTH);
jPanel2.add(jPanel3, BorderLayout.WEST);
jPanel3.add(year, null);
//jPanel3.add(bm, null);
jPanel2.add(jPanel4, BorderLayout.EAST);
jPanel4.add(month, null);
jPanel2.add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jLabel1, null);
groupBox1.add(jPanel5, BorderLayout.CENTER);
jPanel5.add(jScrollPane1, null);
jScrollPane1.getViewport().add(jTable_date, null);
getContentPane().add(panel1); String strYear = "" , strMonth = "" , strDay = "" ;
if ( ! strSelectText.equals ( "" ) ) {
int intMark = 0 ;
String str = "" ;
for ( int i = 0 ; i < strSelectText.length () ; i++ ) {
str = strSelectText.substring ( i , i + 1 ) ;
if ( str.equals ( "-" ) ) {
intMark = i ;
break ;
}
strYear = strYear + str ;
} for ( int i = intMark + 1 ; i < strSelectText.length () ; i++ ) {
str = strSelectText.substring ( i , i + 1 ) ;
if ( str.equals ( "-" ) ) {
intMark = i ;
break ;
}
strMonth = strMonth + str ;
} strDay = strSelectText.substring ( intMark + 1 , strSelectText.length () ) ;
intYear = Integer.parseInt ( strYear ) ;
intMonth = Integer.parseInt ( strMonth ) ;
intDay = Integer.parseInt ( strDay ) ;
}
else {
java.util.Date dt = new java.util.Date() ;
intYear = dt.getYear () + 1900 ;
intMonth = dt.getMonth () + 1 ;
intDay = dt.getDate () ;
}
year.setPreferredSize (60,24);
year.setIntValue( intYear );
month.addItem ("一月");
month.addItem ("二月");
month.addItem ("三月");
month.addItem ("四月");
month.addItem ("五月");
month.addItem ("六月");
month.addItem ("七月");
month.addItem ("八月");
month.addItem ("九月");
month.addItem ("十月");
month.addItem ("十一月");
month.addItem ("十二月");
class Date_eq_this_windowAdapter extends WindowAdapter {
Date_eq adaptee; Date_eq_this_windowAdapter(Date_eq adaptee) {
this.adaptee = adaptee;
} public void windowClosing(WindowEvent e) {
adaptee.this_windowClosing(e);
}
}class Date_JTable extends JTable {
public Date_JTable(Object[][] a, Object[] b) {
super(a,b);
} public Date_JTable() {
super();
} public boolean isCellEditable(int parm1, int parm2) {
//TODO: override this javax.swing.JTable method;
return false;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import com.borland.jbcl.control.*;
import java.util.Calendar ;
import jclass.bwt.* ;
import javax.swing.table.*;class Date_eq extends JDialog {
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
Border border1;
JTextField bm = new JTextField(); GroupBox groupBox1 = new GroupBox();
BorderLayout borderLayout1 = new BorderLayout();
GridLayout gridLayout2 = new GridLayout();
JPanel jPanel2 = new JPanel();
BorderLayout borderLayout2 = new BorderLayout();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
JComboBox month = new JComboBox();
FlowLayout flowLayout1 = new FlowLayout();
FlowLayout flowLayout2 = new FlowLayout();
JPanel jPanel5 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
GridLayout gridLayout3 = new GridLayout();
Date_JTable jTable_date = new Date_JTable();
JCSpinBox year = new JCSpinBox();
String[] days = new String[42];
String[][] day = new String[6][7];
Calendar thisMonth = Calendar.getInstance();
String[] week = new String[7];
String[][] Data = new String[6][7];
int int_height = 0;
int intYear = 0 , intMonth = 0 , intDay = 0 ;
boolean flag = false;
String strSelectText = "" ;// public boolean result = false ;
public int result ;
public String date = null;
GridLayout gridLayout1 = new GridLayout();
JPanel jPanel1 = new JPanel();
public JLabel jLabel1 = new JLabel();
public Date_eq(Frame frame, String title, boolean modal , String strSelectText ) {
super(frame, title, modal);
try {
if(!(String.valueOf (strSelectText).equals ("null")))
this.strSelectText = strSelectText ;
jbInit();
}
catch (Exception e) {
JOptionPane.showMessageDialog ( this , e.getMessage () , "ERRor" , JOptionPane.ERROR_MESSAGE ) ;
e.printStackTrace();
} pack();
} public Date_eq(Frame frame, String title, boolean modal) {
this(frame, title, modal, "");
} public Date_eq(Frame frame) {
this(frame, "", false , "" );
} private void jbInit() throws Exception {
week[0] = "星期日";
week[1] = "星期一";
week[2] = "星期二";
week[3] = "星期三";
week[4] = "星期四";
week[5] = "星期五";
week[6] = "星期六";
for (int i = 0 ; i < 42 ; i++){
int x = i/7;
int y = i - (x)*7;
day[x][y] = "";
}
border1 = BorderFactory.createRaisedBevelBorder();
panel2.setBorder(BorderFactory.createLineBorder(Color.black));
panel2.setLayout(gridLayout2);
this.addWindowListener(new Date_eq_this_windowAdapter(this));
panel1.setLayout(gridLayout1);
groupBox1.setLayout(borderLayout1);
jPanel2.setLayout(borderLayout2);
jPanel4.setLayout(flowLayout1);
flowLayout1.setVgap(2);
jPanel3.setLayout(flowLayout2);
flowLayout2.setVgap(0);
month.setPreferredSize(new Dimension(78, 24));
month.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) {
month_itemStateChanged(e);
}
});
jPanel5.setLayout(gridLayout3);
gridLayout3.setVgap(2);
//bm.setPreferredSize(new Dimension(100, 30));
year.setPreferredSize(new Dimension(56, 26));
year.setInsets(new java.awt.Insets(0,0,0,12));
year.setMinimumSize(new Dimension(20, 10));
year.setColumns(3);
year.setHighlightThickness(0);
year.setMaximum(2100);
year.setMaximumLength(2100);
year.setMinimum(1900);
year.setText("2000");
year.addTextListener(new jclass.bwt.JCTextAdapter() { public void textValueChangeEnd(JCTextEvent e) {
year_textValueChangeEnd(e);
}
});
year.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(MouseEvent e) {
year_mouseReleased(e);
} });
year.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(KeyEvent e) {
year_keyReleased(e);
}
});
bm.setHorizontalAlignment(SwingConstants.CENTER);
jTable_date.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) {
jTable_date_mouseClicked(e);
}
}); groupBox1.addComponentListener(new java.awt.event.ComponentAdapter() { public void componentResized(ComponentEvent e) {
groupBox1_componentResized(e);
}
});
panel1.setMinimumSize(new Dimension(330, 200));
panel1.setPreferredSize(new Dimension(330, 200));
panel1.add(panel2, null);
panel2.add(groupBox1, null);
groupBox1.add(jPanel2, BorderLayout.NORTH);
jPanel2.add(jPanel3, BorderLayout.WEST);
jPanel3.add(year, null);
//jPanel3.add(bm, null);
jPanel2.add(jPanel4, BorderLayout.EAST);
jPanel4.add(month, null);
jPanel2.add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jLabel1, null);
groupBox1.add(jPanel5, BorderLayout.CENTER);
jPanel5.add(jScrollPane1, null);
jScrollPane1.getViewport().add(jTable_date, null);
getContentPane().add(panel1); String strYear = "" , strMonth = "" , strDay = "" ;
if ( ! strSelectText.equals ( "" ) ) {
int intMark = 0 ;
String str = "" ;
for ( int i = 0 ; i < strSelectText.length () ; i++ ) {
str = strSelectText.substring ( i , i + 1 ) ;
if ( str.equals ( "-" ) ) {
intMark = i ;
break ;
}
strYear = strYear + str ;
} for ( int i = intMark + 1 ; i < strSelectText.length () ; i++ ) {
str = strSelectText.substring ( i , i + 1 ) ;
if ( str.equals ( "-" ) ) {
intMark = i ;
break ;
}
strMonth = strMonth + str ;
} strDay = strSelectText.substring ( intMark + 1 , strSelectText.length () ) ;
intYear = Integer.parseInt ( strYear ) ;
intMonth = Integer.parseInt ( strMonth ) ;
intDay = Integer.parseInt ( strDay ) ;
}
else {
java.util.Date dt = new java.util.Date() ;
intYear = dt.getYear () + 1900 ;
intMonth = dt.getMonth () + 1 ;
intDay = dt.getDate () ;
}
year.setPreferredSize (60,24);
year.setIntValue( intYear );
month.addItem ("一月");
month.addItem ("二月");
month.addItem ("三月");
month.addItem ("四月");
month.addItem ("五月");
month.addItem ("六月");
month.addItem ("七月");
month.addItem ("八月");
month.addItem ("九月");
month.addItem ("十月");
month.addItem ("十一月");
month.addItem ("十二月");
month.setSelectedIndex ( intMonth - 1 ); int intRows = jTable_date.getRowCount () ;
int intCols = jTable_date.getColumnCount () ;
for ( int i = 0 ; i < intRows ; i++ ) {
for ( int j = 0 ; j < intCols ; j++ ) {
if ( ! jTable_date.getValueAt ( i , j ).equals ( "" ) && jTable_date.getValueAt ( i , j ) != null ) {
int intNDay = Integer.parseInt ( (String) jTable_date.getValueAt ( i , j ) ) ;
if ( intNDay == intDay ) {
jTable_date.setRowSelectionInterval ( i , i );
jTable_date.setColumnSelectionInterval ( j , j );
}
}
}
}
jLabel1.setText ( String.valueOf ( intYear ).trim () + "-" + String.valueOf ( intMonth ).trim () + "-" + String.valueOf ( intDay ).trim () ) ;
} // OK
void button1_actionPerformed(ActionEvent e) {
dispose();
} // Cancel
void button2_actionPerformed(ActionEvent e) {
dispose();
} void this_windowClosing(WindowEvent e) {
dispose();
} void set_day() {
for (int i=0; i<42; i++) {
days[i] = "";
} String str_year = year.getText ().trim ();
if(month!=null&&(!month.equals("null")))
thisMonth.set(Calendar.MONTH, month.getSelectedIndex ());
if(year!=null&&(!year.equals("null")))
thisMonth.set(Calendar.YEAR, Integer.parseInt(str_year) );
str_year=String.valueOf(thisMonth.get(Calendar.YEAR));
String str_month=String.valueOf(thisMonth.get(Calendar.MONTH));
thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);
thisMonth.set(Calendar.DAY_OF_MONTH,1);
int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;
int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int i=0;i<maxIndex;i++) {
days[firstIndex+i]=String.valueOf(i+1);
}
for (int i=0; i<42; i++){
int x = i/7;
int y = i - (x)*7;
day[x][y] = days[i];
} int t = 0;
if (!flag) {
jTable_date = new Date_JTable(day, week);
flag = true;
}
//int height = jTable_height/7;
//this.set_height ();
this.add_listener ();
jTable_date.getTableHeader ().setReorderingAllowed (false);
DefaultTableCellRenderer render = new DefaultTableCellRenderer();
render.setHorizontalAlignment(JLabel.CENTER);
for (int i=0; i<7; i++)
jTable_date.getColumn (week[i]).setCellRenderer(render);
jTable_date.setRowSelectionAllowed( false );
jTable_date.setCellSelectionEnabled(true);
jTable_date.getSelectionModel().setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
jScrollPane1.getViewport().add(jTable_date, null);
try {
jTable_date.setRowHeight (int_height);
this.set_label ();
} catch (Exception sqle) { }
} void month_itemStateChanged(ItemEvent e) {
this.set_day ();
} void year_keyReleased(KeyEvent e) {
this.set_day ();
} void year_mouseReleased(MouseEvent e) {
this.set_day ();
} void year_textValueChangeEnd(JCTextEvent e) {
this.set_day ();
}
void jTable_date_mouseClicked(MouseEvent e) {
String str_month = String.valueOf(month.getSelectedIndex()+1);
if (str_month.length ()==1)
str_month = "0"+str_month;
String str_date = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
if (str_date.length ()==1)
str_date = "0"+str_date;
if(e.getClickCount() == 2){
String tmp = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
if(tmp.trim().equals("")){
}else{
// result = true ;
result = 1 ;
date = year.getText().trim()+"-"+str_month+"-"+str_date;
jLabel1.setText (date);
dispose();
} }
if(e.getClickCount() == 1){
String tmp = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
if(tmp.trim().equals("")){
jLabel1.setText ("");
}else{
date = year.getText().trim()+"-"+str_month+"-"+str_date;
jLabel1.setText (date);
} }
} void set_label() {
String str_month = String.valueOf(month.getSelectedIndex()+1);
if (str_month.length ()==1)
str_month = "0"+str_month;
String str_date = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
if (str_date.length ()==1)
str_date = "0"+str_date;
String tmp = jTable_date.getValueAt(jTable_date.getSelectedRow(),jTable_date.getSelectedColumn()).toString();
if(tmp.trim().equals("")){
jLabel1.setText ("");
}else{
date = year.getText().trim()+"-"+str_month+"-"+str_date;
jLabel1.setText (date);
}
} void add_listener() {
jTable_date.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) {
jTable_date_mouseClicked(e);
}
});
jTable_date.getTableHeader().addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int i = jTable_date.getTableHeader().columnAtPoint(new Point(e.getX(),0));
//System.out.println("header clicked !"+ String.valueOf(i));
}
});
} void groupBox1_componentResized(ComponentEvent e) {
this.set_height ();
} void set_height() {
double jTable_height = jScrollPane1.getSize().getHeight();
//int height = jTable_height/7; int height = (int) ((jTable_height- jTable_date.getTableHeader ().getHeight ()-4)/6);
int_height = height;
jTable_date.setRowHeight (height); } public String getTodayDate() {
java.util.Date dt=new java.util.Date() ;
int intTYear= dt.getYear () ;
int intTMonth=dt.getMonth () ;
int intTDay=dt.getDate () ;
return (String.valueOf (intTYear+1900)+"-"+String.valueOf (intTMonth+1)+"-"+String.valueOf (intTDay));
} }class Date_eq_this_windowAdapter extends WindowAdapter {
Date_eq adaptee; Date_eq_this_windowAdapter(Date_eq adaptee) {
this.adaptee = adaptee;
} public void windowClosing(WindowEvent e) {
adaptee.this_windowClosing(e);
}
}class Date_JTable extends JTable {
public Date_JTable(Object[][] a, Object[] b) {
super(a,b);
} public Date_JTable() {
super();
} public boolean isCellEditable(int parm1, int parm2) {
//TODO: override this javax.swing.JTable method;
return false;
}
// public
}
import jclass.bwt.* ;
这些API哪里有download?
这个用到了borland的类库,可是我们大多数没有装JBUILD呀,一般用的都是JDK。