运行后错误如下: 
java.lang.ClassCastException: javax.swing.JTable$1 cannot be cast to javax.swing.table.DefaultTableModel    at mhs.RSS.actionPerformed(RSS.java:90) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
 
程序代码如下: 
import javax.swing.*; 
import javax.swing.event.*; 
import javax.swing.table.*; 
import java.util.*; 
import java.awt.*; 
import java.awt.event.*; 
 
import java.net.URL;    
import java.util.List;    
import java.util.*; 
import java.text.SimpleDateFormat; 
 
import com.sun.syndication.feed.synd.SyndCategory;    
import com.sun.syndication.feed.synd.SyndContent;    
import com.sun.syndication.feed.synd.SyndEnclosure;    
import com.sun.syndication.feed.synd.SyndEntry;    
import com.sun.syndication.feed.synd.SyndFeed;    
import com.sun.syndication.io.SyndFeedInput;    
import com.sun.syndication.io.XmlReader;  
 
 
public class RSS extends Frame implements ActionListener 

    JLabel RSS = new JLabel("RSS:"); 
    JTextField URL = new JTextField(); 
    JButton JB= new JButton("确认"); 
    Object[][]tablevalue = new Object[20][4]; 
    String []name={"标题","作者","时间","摘要"}; 
    JTable table = new JTable(tablevalue,name); 
     
    public RSS() 
    { 
        this.setTitle("欢迎使用RSS阅读器"); 
 
        RSS.setBounds(100,570,60,60); 
        this.add(RSS); 
        URL.setBounds(170,570,400,50); 
        this.add(URL); 
        JB.setBounds(620,570,70,50); 
        this.add(JB); 
        JB.addActionListener(this); 
         
         
         
         
         
        table.setBounds(40,150,720,500); 
        TableColumn Column0 = table.getColumnModel().getColumn(0);  
        Column0.setPreferredWidth(80); 
        TableColumn Column1 = table.getColumnModel().getColumn(1);  
        Column1.setPreferredWidth(60); 
        TableColumn Column2 = table.getColumnModel().getColumn(2);  
        Column2.setPreferredWidth(60); 
        TableColumn Column3 = table.getColumnModel().getColumn(3);  
        Column3.setPreferredWidth(400); 
        table.setRowHeight(25);  
         
        this.add(new JScrollPane(table)); 
        this.setBounds(100,200,800,700); 
        this.setVisible(true); 
        addWindowListener(new WindowAdapter() 
        {public void windowClosing(WindowEvent e) 
          { 
            System.exit(0); 
          } 
        }); 
    } 
     
     
    public static void main(String args[]) 
       { 
           new RSS(); 
       } 
     
     
    @Override 
    public void actionPerformed(ActionEvent e)  
    { 
        // TODO Auto-generated method stub 
        if(e.getSource()==JB) 
        {    
            try {    
                  //URL url = new URL(RSS.getText()); 
                  URL.setText("http://rss.sina.com.cn/ent/hot_roll.xml"); 
                  URL url = new URL(URL.getText()); 
                  XmlReader reader = new XmlReader(url);    
                  SyndFeedInput input = new SyndFeedInput(); 
                  DefaultTableModel model = (DefaultTableModel)table.getModel(); //就是这句出问题了,大牛,怎么改啊                  SyndFeed feed = input.build(reader);    
                  List entries = feed.getEntries();  
                  
                  for (int i = 0; i < entries.size(); i++)  
                  { String[] arr=new String[4];  
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
 
                    SyndEntry entry = (SyndEntry) entries.get(i);  
                    arr[0]=entry.getTitle();  
                    arr[1]=entry.getAuthor(); 
                    arr[2]=sdf.format(entry.getPublishedDate()); 
 
                    SyndContent description = entry.getDescription();  
                    arr[3]=description.getValue(); 
                    model.addRow(arr);  
                     
                  } 
                  table.invalidate();  
               } 
            catch (Exception error)  
                {    
                  error.printStackTrace();    
                } 
       } 
 
    } 

解决方案 »

  1.   

    类型转换出错了,不是DefaultTableModel类型的
      

  2.   

    那怎么该哦 我刚学JAVA 盼指点
      

  3.   

    你去查一下API,类型错了
      

  4.   

    public class RSS extends Frame implements ActionListener 

        JLabel RSS = new JLabel("RSS:"); 
        JTextField URL = new JTextField(); 
        JButton JB= new JButton("确认"); 
        Object[][]tablevalue = new Object[20][4]; 
        String []name={"标题","作者","时间","摘要"}; 
        //JTable table = new JTable(tablevalue,name); 改也下边那样构造JTable试试看
        DefaultTableModel dtm = new DefaultTableModel(tablevalue,name);
        JTable jTable1 = new JTable(dtm); 这样试试看行不行?
      

  5.   

    JTable
    public JTable(TableModel dm)Constructs a JTable that is initialized with dm as the data model, a default column model, and a default selection model. Parameters:
    dm - the data model for the table
    See Also:
    createDefaultColumnModel(), createDefaultSelectionModel()
      

  6.   

    gardner2010  谢谢你 OK啦  大牛 小妹我是个初学者  愿你RP++哦