首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

高分求解决方案,为什么小弟我JComboBox选择了却没效果

2011-12-10 
高分求解决方案,为什么我JComboBox选择了却没效果这是个日历程序,我想通过选择月份改变每月的日历.为什么

高分求解决方案,为什么我JComboBox选择了却没效果
这是个日历程序,我想通过选择月份改变每月的日历.为什么选择却没有效果呢?
package   Calendar;

import   java.awt.*;
import   java.awt.event.*;
import   javax.swing.*;
import   java.util.*;

class   Calendarday   extends   JPanel   {

private   JPanel   dayPanel;

private   static   int   count   =   0;

private   JLabel[]   label;

private   static   final   GregorianCalendar   d   =   new   GregorianCalendar();
private   static   final   GregorianCalendar   day   =   new   GregorianCalendar();

public   void   setMonth(int   month){
d.set(Calendar.MONTH,   month-1);
day.set(Calendar.MONTH,   month-1);
System.out.println(d.get(Calendar.MONTH));
}

public   void   setYear(int   year){
d.set(Calendar.YEAR,   year);
day.set(Calendar.YEAR,   year);
}
public   Calendarday()   {
//   日期容器开始:

day.set(Calendar.DAY_OF_MONTH,   1);
int   weekday   =   day.get(Calendar.DAY_OF_WEEK);

dayPanel   =   new   JPanel();
//   根据每月的第一天来判断,决定日期表格容器的大小:
if   (weekday   ==   7   ||   weekday==6)   {
dayPanel.setLayout(new   GridLayout(6,   7));
label   =   new   JLabel[42];
for   (int   i   =   0;   i   <   label.length;   i++)   {
label[i]   =   new   JLabel( "       ");
dayPanel.add(label[i]);
}
}   else   {
dayPanel.setLayout(new   GridLayout(5,   7));
label   =   new   JLabel[35];
for   (int   i   =   0;   i   <   label.length;   i++)   {
label[i]   =   new   JLabel( "       ");
dayPanel.add(label[i]);
label[i].addMouseListener(new   mousel());
}

}
//   日期表格容器结束;

printcalendar();
}


//   输出日期表
public   void   printcalendar()   {
int   today   =   d.get(Calendar.DAY_OF_MONTH);
int   month   =   d.get(Calendar.MONTH);


d.set(Calendar.DAY_OF_MONTH,   1);
int   weekday   =   d.get(Calendar.DAY_OF_WEEK);

for   (int   i   =   Calendar.SUNDAY;   i   <   weekday;   i++)   {
label[count].setText( "       ");
count++;
}
System.out.println(month+ "ss ");
do   {
int   day   =   d.get(Calendar.DAY_OF_MONTH);
label[count].setText(Integer.toString(day));
if   (day   ==   today)   {
label[count].setText(label[count].getText()   +   "* ");
}   else   {
label[count].setText(label[count].getText()   +   "     ");
}

d.add(Calendar.DAY_OF_MONTH,   1);
weekday   =   d.get(Calendar.DAY_OF_WEEK);
count++;
}   while   (d.get(Calendar.MONTH)   ==   month);
count=0;
}

private   class   mousel   extends   MouseAdapter{

public   void   mousePressed(MouseEvent   event){}
public   void   mouseClicked(MouseEvent   event){}


public   void   mouseExited(MouseEvent   event)
{
JLabel   label=(JLabel)   event.getSource();
label.setOpaque(false);
label.setBackground(Color.black);
}
public   void   mouseEntered(MouseEvent   event)
{
JLabel   label=(JLabel)   event.getSource();
label.setOpaque(true);
label.setBackground(Color.red);
}
public   void   mouseReleased(MouseEvent   event){}

}

public   JPanel   getnewtpye(){
return   dayPanel;
}

}


//顶部星期的类
class   CalendarTop   extends   JPanel{
private   JPanel   weekPanel;

public   CalendarTop(String   ...   weekname){

//   星期容器
weekPanel   =   new   JPanel();
weekPanel.setLayout(new   GridLayout(1,   7));

for(int   i=0;i <weekname.length;i++){
addLabel(weekname[i]);
}

//   星期容器结束;
}
//   添加星期到容器里;
private   void   addLabel(String   str)   {
JLabel   weeklabel   =   new   JLabel(str);
weekPanel.add(weeklabel);
}

public   JPanel   getnewtype(){
return   weekPanel;
}
}

class   Calendaradjust   extends   JPanel{
private   JPanel   adjustPanel;
private   JComboBox     month;
Calendaradjust(){
month=new   JComboBox();

month.setEditable(false);
for(int   i=1;i <=12;i++)
month.addItem(i);
month.addActionListener(new   ActionListener(){
public   void   actionPerformed(ActionEvent   event){
Calendarday   calendar=new   Calendarday();
calendar.setMonth((Integer)month.getSelectedItem());

}
});
add(month);
}
public   JPanel   getnewtpye(){
return   adjustPanel;
}

}

//界面布局类
class   CalendarFrame   extends   JFrame   {
Calendarday   dayPanel   =   new   Calendarday();
//可自定义星期面版的
CalendarTop   topPanel=new   CalendarTop( "日 ", "一 ", "二 ", "三 ", "四 ", "五 ", "六 ");
Calendaradjust   adjust=new   Calendaradjust();

public   CalendarFrame()   {
setTitle( "日历 ");
//布局管理器;
setPanelLayout(BorderLayout.NORTH,BorderLayout.CENTER);
add(adjust,BorderLayout.SOUTH);
pack();
}

public   void   setPanelLayout(String   topLayout,String   dayLayout){
setLayout(new   BorderLayout());
JPanel   jptop=topPanel.getnewtype();
JPanel   jpday=dayPanel.getnewtpye();
add(jptop,topLayout);
add(jpday,dayLayout);

}
}


public   class   NewCalendar   {
public   static   void   main(String[]   args)   {
CalendarFrame   frame   =   new   CalendarFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

[解决办法]
你的事件处理和printcalendar好像有点问题

热点排行