java table的问题?为什么table的mouseclicked事件只能反应一次就没有反应了?程序是一个万年历的程序,当年份或月份改变了就,再从table上面选择日期,再把日期写在一个TestField的文本中,现在问题是程序开始运行的时候(没有改变当前的年和月),可以多次选择日期,TestField的文本可以根据鼠标点击而改变,但是一旦选择另一个年份,鼠标选择就失效了???????
table的监听事件:(部分程序)table.addMouseListener(new MouseListener(){ //添加事件 
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseClicked(MouseEvent e)

int x = e.getX(); 
int y = e.getY();  
int row = table.getSelectedRow();
int col= table.getSelectedColumn();
dayft.setText(table.getValueAt(row,col).toString());}
});combYear.addItemListener(new ItemListener(){ 
public void itemStateChanged(ItemEvent e) { 
String y=(String)combYear.getSelectedItem(); 
year=Integer.parseInt(y); //年份改变触发事件
getTable(year,month);
//table.addMouseListener(new MouseListener());     

}); 
combMonth.addItemListener(new ItemListener(){ //添加事件 
public void itemStateChanged(ItemEvent e) { 
String m=(String)combMonth.getSelectedItem(); 
month=Integer.parseInt(m)-1; 
getTable(year,month); //月份改变所触发的事件} 
}); 
combYearl.addItemListener(new ItemListener(){ 
public void itemStateChanged(ItemEvent e) { 
String y=(String)combYearl.getSelectedItem(); 
year=Integer.parseInt(y); 
getTable(year,month); 
//table.addMouseListener(new MouseListener());

}); 
combMonthl.addItemListener(new ItemListener(){ //添加事件 
public void itemStateChanged(ItemEvent e) { 
String m=(String)combMonthl.getSelectedItem(); 
month=Integer.parseInt(m)-1; 
getTable(year,month); } 
}); 
void getTable(int year,int month) 

//判断是否闰年
if(gcal.isLeapYear(year)) mon[2]=29;cal.set(year,month,1);
int week=cal.get(Calendar.DAY_OF_WEEK)-1; 
String a[]=new String[37]; 
String f[]=new String[38];
for(int i=0;i<a.length;i++) 
a[i]=" "; 
for(int i=week,n=1;i<week+mon[month+1];i++) 

if(n<=9) 
a[i]=" "+ n; 
else 
a[i]=String.valueOf(n);//星期的对应 空格 
n++;
 } 
for(int i=0,j=0,k=0;i<a.length;i++ ) 

value[j][k]=a[i];
  k++; 
if(k%7==0) 

j=j+1; 
k=k%7;

} table=new JTable(value,title); 
 JTableHeader head=table.getTableHeader();
 
  
 
p1.add(head,BorderLayout.NORTH); 
p1.add(table,BorderLayout.CENTER); 
c.add(p1); 
validate(); } 
第一次发帖子,没分可以给,希望哪位大虾可以帮帮忙~~感激不尽!~~~

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【waitingfree】截止到2008-07-23 15:50:49的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:0.00  %               结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html