在C#中,系统是定义好了一个日历控件Calendar,需要使用的话,拉入介面即可;但在java中,我使用的是netBeans5.5,没有这样的一个控件,如何做一个Calendar来让其显示在一个JPanel中呢?
请大侠给个例子,详细说明下,谢谢

解决方案 »

  1.   

    netBeans5.5不晓得有没有
    如果自己做:
    public class Calendar extends JPanel{.....//加入东西就行了} 使用的时候加到其它的控件中就行了:
    Calendar c = new Calendar();
    Container.add(c);
      

  2.   

    好象不能这样简单的加到入吧???我试了的
    public class calJFrame extends javax.swing.JFrame {
        
        public calJFrame() {
            initComponents();
            this.getContentPane().add(new java.util.Calendar() {//这里就报错了
                public void add(int field, int amount) {
                }
                protected void computeFields() {
                }
                protected void computeTime() {
                }
                public int getGreatestMinimum(int field) {
                }
                public int getLeastMaximum(int field) {
                }
                public int getMaximum(int field) {
                }
                public int getMinimum(int field) {
                }
                public void roll(int field, boolean up) {
                }
            });
        }
      

  3.   


    现有IBM职位,要求2年及2年以上相关工作经验,主要是Jave研发,Jave测试方向.有DB2的经验更好。英文读写。还有其他相关软件职位,机会难得,有兴趣请将简历发至邮箱[email protected],我的msn:[email protected]
      

  4.   

    去看看jdk的api
    this.getContentPane()返回一个Container
    Class Container{
    public Component add(Component comp).....
    }而 java.util.Calendar是个什么,参数类型肯定不对
    我说的Calendar不是java.util.Calendar
      

  5.   

    有很多js的日历组件的,比如WebCalendar.js百度一下就能找到
      

  6.   

    请问,你说的Calendar是哪一个呀??请指教,谢谢
      

  7.   

    在Swing中好像没Calendar这个控件,
    我是说可以自己做一个public class Calendar extends JPanel{ .....//加入东西就行了 }让这个Calendar extends JPanel就可以了,要是自己不想写,那就去网上下个
      

  8.   


    public class CalJFrame extends javax.swing.JFrame {
      initComponents(); 
      public CalJFrame() {
        this.getContentPane().add(new Calendar());
      }
    }class Calendar extends JPanel {
      public void add(int field, int amount) {
      }
      protected void computeFields() {
      }
      protected void computeTime() {
      }
      public int getGreatestMinimum(int field) {
      }
      public int getLeastMaximum(int field) {
      }
      public int getMaximum(int field) {
      }
      public int getMinimum(int field) {
      }
      public void roll(int field, boolean up) {
      }
    }lz是不是想这样啊
      

  9.   

    我现在自己来做一个日历,请问:
    GregorianCalendar tmpgc=new GregorianCalendar(2008,9,1);此时:tmpgc的正确时间是哪一个呀?
    2008-9-12008-10-12008-9-22008-10-2谢谢指教
      

  10.   

    只有自己做了.我做了一个
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowEvent;
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import java.util.Vector;import javax.swing.BorderFactory;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSpinner;
    import javax.swing.JTable;
    import javax.swing.SpinnerDateModel;
    import javax.swing.SpinnerModel;
    import javax.swing.border.Border;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.JTableHeader;public class Cal extends JFrame
    { private JTable table = new JTable(); private CalAbstractTableModel tableModel = new CalAbstractTableModel(); private JTableHeader tableH; private int year = Calendar.getInstance().get(Calendar.YEAR); private int month = Calendar.getInstance().get(Calendar.MONTH) + 1; private Vector vec = new Vector(); public Cal()
    {
    try
    { this.setTitle("日历");
    this.setSize(250, 210); this.getContentPane().add(pnParent);
    border1 = BorderFactory.createEmptyBorder(10, 5, 10, 5);
    pnParent.setBorder(border1);
    pnParent.setLayout(layout);
    layout.setVgap(20);
    layout.setHgap(20);
    pnParent.add(pnCenter, BorderLayout.CENTER); pnCenter.setLayout(layout2);
    layout2.setVgap(5);
    layout2.setHgap(10);
    pnCenter.add(pnNorth, BorderLayout.NORTH);
    pnCenter.add(pnSouth, BorderLayout.CENTER); pnNorth.setLayout(layout3);
    layout3.setVgap(5);
    layout3.setHgap(10); ChangeListener listener = new ChangeListener()
    {
    public void stateChanged(ChangeEvent e)
    {
    SpinnerModel source = (SpinnerModel) e.getSource();
    String str = ((String) source.getValue().toString())
    .substring(((String) source.getValue().toString())
    .lastIndexOf(" ") + 1);
    try
    {
    year = Integer.parseInt(str);
    } catch (Exception ex)
    {
    ex.printStackTrace();
    }
    constructDate(year, month);
    }
    }; SpinnerDateModel model = new SpinnerDateModel();
    model.setCalendarField(Calendar.WEEK_OF_MONTH);
    spinner.setModel(model);
    model.addChangeListener(listener); JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner,
    "yyyy");
    spinner.setEditor(editor); pnNorth.add(spinner); pnNorth.add(cmb);
    cmb.addItem("一月");
    cmb.addItem("二月");
    cmb.addItem("三月");
    cmb.addItem("四月");
    cmb.addItem("五月");
    cmb.addItem("六月");
    cmb.addItem("七月");
    cmb.addItem("八月");
    cmb.addItem("九月");
    cmb.addItem("十月");
    cmb.addItem("十一月");
    cmb.addItem("十二月");
    cmb.setSelectedIndex(month - 1);
    cmb.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    month = cmb.getSelectedIndex() + 1;
    constructDate(year, month);
    }
    }); pnSouth.setLayout(layout1);
    pnSouth.add(scrollPane);
    scrollPane.getViewport().add(table); table.setModel(tableModel);
    table.setCellSelectionEnabled(false);
    table.getTableHeader().setResizingAllowed(false);
    table.getTableHeader().setReorderingAllowed(false);
    table.setShowGrid(false);
    table.setBackground(Color.WHITE); tableH = table.getTableHeader();
    tableH.setBackground(Color.LIGHT_GRAY);
    tableH.setForeground(Color.WHITE); } catch (Exception ex)
    {
    ex.printStackTrace();
    } } private void constructDate(int year, int month)
    {
    vec.clear(); int count = 1;
    int countSize = 0; int temp = mon(month); if (temp == 0)
    {
    if (isRunNian(year))
    {
    countSize = 29;
    } else
    {
    countSize = 28;
    }
    } else if (temp == 1)
    {
    countSize = 31;
    } else if (temp == 2)
    {
    countSize = 30;
    } GregorianCalendar call = new GregorianCalendar(year, month - 1, count);
    int dayofweek = call.get(Calendar.DAY_OF_WEEK); DateInfo dateInfo = new DateInfo(); switch (dayofweek)
    {
    case 1:
    dateInfo.setSeven(count++);
    vec.add(dateInfo);
    break;
    case 2:
    dateInfo.setOne(count++);
    vec.add(dateInfo);
    break;
    case 3:
    dateInfo.setTwo(count++);
    vec.add(dateInfo);
    break;
    case 4:
    dateInfo.setThree(count++);
    vec.add(dateInfo);
    break;
    case 5:
    dateInfo.setFour(count++);
    vec.add(dateInfo);
    break;
    case 6:
    dateInfo.setFive(count++);
    vec.add(dateInfo);
    break;
    case 7:
    dateInfo.setSix(count++);
    vec.add(dateInfo);
    break;
    default:
    break;
    } switch (dayofweek)
    {
    case 1:
    ((DateInfo) vec.get(0)).setOne(count++);
    ((DateInfo) vec.get(0)).setTwo(count++);
    ((DateInfo) vec.get(0)).setThree(count++);
    ((DateInfo) vec.get(0)).setFour(count++);
    ((DateInfo) vec.get(0)).setFive(count++);
    ((DateInfo) vec.get(0)).setSix(count++);
    break;
    case 2:
    ((DateInfo) vec.get(0)).setTwo(count++);
    ((DateInfo) vec.get(0)).setThree(count++);
    ((DateInfo) vec.get(0)).setFour(count++);
    ((DateInfo) vec.get(0)).setFive(count++);
    ((DateInfo) vec.get(0)).setSix(count++);
    break;
    case 3:
    ((DateInfo) vec.get(0)).setThree(count++);
    ((DateInfo) vec.get(0)).setFour(count++);
    ((DateInfo) vec.get(0)).setFive(count++);
    ((DateInfo) vec.get(0)).setSix(count++);
    break;
    case 4:
    ((DateInfo) vec.get(0)).setFour(count++);
    ((DateInfo) vec.get(0)).setFive(count++);
    ((DateInfo) vec.get(0)).setSix(count++);
    break;
    case 5:
    ((DateInfo) vec.get(0)).setFive(count++);
    ((DateInfo) vec.get(0)).setSix(count++);
    break;
    case 6:
    ((DateInfo) vec.get(0)).setSix(count++);
    break;
    default:
    break;
    } while (count <= countSize)
    {
    DateInfo info = new DateInfo();
    info.setSeven(count++);
    if (isEnd(count, countSize))
    {
    vec.add(info);
    break;
    }
    info.setOne(count++);
    if (isEnd(count, countSize))
    {
    vec.add(info);
    break;
    }
    info.setTwo(count++);
    if (isEnd(count, countSize))
    {
    vec.add(info);
    break;
    }
    info.setThree(count++);
    if (isEnd(count, countSize))
    {
    vec.add(info);
    break;
    }
    info.setFour(count++);
    if (isEnd(count, countSize))
    {
    vec.add(info);
    break;
    }
    info.setFive(count++);
    if (isEnd(count, countSize))
    {
    vec.add(info);
    break;
    }
    info.setSix(count++);
    if (isEnd(count, countSize))
    {
    vec.add(info);
    break;
    }
    vec.add(info);
    } tableModel.initDate(vec);
    } private boolean isEnd(int count, int countSize)
    {
    if (count > countSize)
    {
    return true;
    } return false;
    } // 0平,1大,2小
    private int mon(int month)
    {
    if (month < 8)
    {
    if (month % 2 == 0)
    {
    if (month == 2)
    {
    return 0;
    }
    return 2;
    } else
    {
    return 1;
    }
    } else
    {
    if (month % 2 == 0)
    { return 1; } else
    {
    return 2;
    }
    }
    } private boolean isRunNian(int year)
    {
    if (year % 4 == 0)
    {
    if (year % 100 != 0)
    {
    return true;
    } else if (year % 400 == 0)
    {
    return true;
    } }
    return false;
    }
      

  11.   

    protected void processWindowEvent(WindowEvent e)
    {
    if (e.getID() == WindowEvent.WINDOW_CLOSING)
    {
    this.dispose();
    }
    } JPanel pnParent = new JPanel(); JPanel pnCenter = new JPanel(); JPanel pnNorth = new JPanel(); JPanel pnSouth = new JPanel(); JScrollPane scrollPane = new JScrollPane(); BorderLayout layout = new BorderLayout(); BorderLayout layout1 = new BorderLayout(); BorderLayout layout2 = new BorderLayout(); GridLayout layout3 = new GridLayout(1, 2); JComboBox cmb = new JComboBox(); JSpinner spinner = new JSpinner(); Border border1; public static void main(String[] args)
    {
    Cal cal = new Cal();
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension size = cal.getSize();
    if (size.width >= screenSize.width)
    {
    size.width = screenSize.width;
    }
    if (size.height >= screenSize.height)
    {
    size.height = screenSize.height;
    }
    cal.setLocation((screenSize.width - size.width) / 2,
    (screenSize.height - size.height) / 2);
    cal.setVisible(true);
    }
    }class CalAbstractTableModel extends AbstractTableModel
    { private Vector vecDateInfo = null; private String[] columnName = new String[] { "日", "一", "二", "三", "四", "五",
    "六" }; public CalAbstractTableModel()
    {
    if (null == vecDateInfo)
    {
    vecDateInfo = new Vector();
    } else
    {
    vecDateInfo.clear();
    }
    } public String getColumnName(int col)
    {
    return columnName[col];
    } public int getRowCount()
    {
    return this.vecDateInfo.size();
    } public int getColumnCount()
    {
    return columnName.length;
    } public Object getValueAt(int row, int col)
    {
    DateInfo dateInfo = (DateInfo) vecDateInfo.get(row);
    switch (col)
    {
    case 0:
    return getStr(dateInfo.getSeven());
    case 1:
    return getStr(dateInfo.getOne());
    case 2:
    return getStr(dateInfo.getTwo());
    case 3:
    return getStr(dateInfo.getThree());
    case 4:
    return getStr(dateInfo.getFour());
    case 5:
    return getStr(dateInfo.getFive());
    case 6:
    return getStr(dateInfo.getSix());
    default:
    return ""; }
    } public boolean isCellEditable(int row, int col)
    {
    return false;
    } public String getStr(int num)
    {
    if (num == -1)
    {
    return "";
    } else
    {
    return Integer.toString(num);
    }
    } public void initDate(Vector vecDateInfo)
    {
    this.vecDateInfo = vecDateInfo;
    this.fireTableDataChanged();
    }
    }class DateInfo
    {
    private int seven = -1; private int one = -1; private int two = -1; private int three = -1; private int four = -1; private int five = -1; private int six = -1; public int getFive()
    {
    return five;
    } public void setFive(int five)
    {
    this.five = five;
    } public int getFour()
    {
    return four;
    } public void setFour(int four)
    {
    this.four = four;
    } public int getOne()
    {
    return one;
    } public void setOne(int one)
    {
    this.one = one;
    } public int getSeven()
    {
    return seven;
    } public void setSeven(int seven)
    {
    this.seven = seven;
    } public int getSix()
    {
    return six;
    } public void setSix(int six)
    {
    this.six = six;
    } public int getThree()
    {
    return three;
    } public void setThree(int three)
    {
    this.three = three;
    } public int getTwo()
    {
    return two;
    } public void setTwo(int two)
    {
    this.two = two;
    }}