importjava.awt.*;importjava.text.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.*;classMeApp{publicstaticvoidmain(String[]args){finalintyear;if(args.length==0){year=Calendar.getInstance().get(Calendar.YEAR);}else{year=Integer.valueOf(args[0]);}SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){finalMeFrameframe=newMeFrame(year);frame.setDefaultCloseOperation(MeFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);}});}}classMeFrameextendsJFrame{publicMeFrame(intyear){super(String.valueOf(year));getContentPane().setLayout(newGridLayout(3,4,5,5));for(inti=0;i<12;++i){getContentPane().add(newMeMonthPanel(year,i+1));}}}classMeMonthPanelextendsJPanel{publicMeMonthPanel(intyear,intmonth){setLayout(newBorderLayout());add(newJLabel(newDateFormatSymbols().getMonths()[month-1],JLabel.CENTER),BorderLayout.NORTH);add(newJScrollPane(newJTable(newMeMonthTableModel(year,month))),BorderLayout.CENTER);}publicDimensiongetPreferredSize(){returnnewDimension(220,180);// ???}}classMeMonthTableModelextendsAbstractTableModel{privatefinalint_year,_month;privatefinalString[]_weekdays=newDateFormatSymbols().getShortWeekdays();privatefinalCalendar_cal=Calendar.getInstance();publicMeMonthTableModel(intyear,intmonth){_year=year;_month=month;}publicintgetColumnCount(){return7;}publicStringgetColumnName(intcol){return_weekdays[col+1];}publicintgetRowCount(){return6;}publicObjectgetValueAt(introw,intcol){_cal.set(Calendar.YEAR,_year);_cal.set(Calendar.MONTH,_month-1);// starts from 0_cal.set(Calendar.DAY_OF_WEEK,col+1);// starts from 1_cal.set(Calendar.WEEK_OF_MONTH,row+1);// starts from 1if(_cal.get(Calendar.DAY_OF_WEEK)==col+1&&_cal.get(Calendar.WEEK_OF_MONTH)==row+1){returnString.valueOf(_cal.get(Calendar.DATE));}else{return"";}}}
ocean
#5061()
[
Java
]
Rating0/0=0.00
ついでにJTable版。
Rating0/0=0.00-0+