源代码(书上的)import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class test8 implements ActionListener
{
JTable table=null;
DefaultTableModel defaultModel=null;
public test8()
{
JFrame f=new JFrame();
Object[][] p=
{
{"王鹏",new Integer(91),new Integer(1949),new Integer(1910)},
{"朱雪莲",new Integer(82),new Integer(1969),new Integer(1510)},
{"王鹏",new Integer(47),new Integer(1957),new Integer(1040)},
{"王鹏",new Integer(61),new Integer(1957),new Integer(1180)},
{"王鹏",new Integer(90),new Integer(1987),new Integer(1770)},

};
String[] n={"姓名","工号","出生年月","薪水"};
defaultModel=new DefaultTableMode(p,n);
table=new JTable(defaultModel);
table.setPreferredScrollableViewportSize(new Dimension(400,80));
JScrollPane s=new JScrollPane(table);
JPanel panel=new JPanel();
JButton b=new JButton("增加行");
panel.add(b);
panel.add(b);
b.addActionListener(this);
b=new JButton("删除行");
panel.add(b);
panel.add(b);
b.addActionListener(this);
Container contentPane=f.getContentPane();
contentPane.add(panel,BorderLayout.NORTH);
contentPane.add(s,BorderLayout.CENTER);
f.setTitle("AddRemoveCells");
f.back();
f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{System.exit(0);}
}); }
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommmand().equals("增加行"))
defaultModel.addRow(new Vector());
if(e.getActionCommmand().equals("删除行"))
{
int rowcount=defaultModel.getRowCount()-1;
if(rowcount>=0)
{
defaultModel.removeRow(rowcount);
defaultModel.setRowCount(rowcount); }
table.revalidate();
}
public static void main(String[] args)
{
new test8();
}
}}
运行提示 test8.java:65非法的表达式开始public static void main(String[] args) 
还有tes8.java:65 需要‘;’public static void main(String[] args) 

解决方案 »

  1.   

    最后面的大括号有问题。
        public void actionPerformed(ActionEvent e)
        {
            if (e.getActionCommand().equals("增加行"))
                defaultModel.addRow(new Vector());
            if (e.getActionCommand().equals("删除行"))
            {
                int rowcount = defaultModel.getRowCount() - 1;
                if (rowcount >= 0)
                {
                    defaultModel.removeRow(rowcount);
                    defaultModel.setRowCount(rowcount);
                    
                }
                table.revalidate();
            }
        }
        
        public static void main(String[] args)
        {
            new test8();
            
        }
    }
      

  2.   

    楼主有几个地方输错了字母,还有在actionPerformed的方法结束标记}位置写的不对,改成下面的就OK了
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.*;
    public class Test8 implements ActionListener
    {
        JTable table=null;
        DefaultTableModel defaultModel=null;
        public Test8()
        {
            JFrame f=new JFrame();
            Object[][] p=
                    {
                            {"王鹏",new Integer(91),new Integer(1949),new Integer(1910)},
                            {"朱雪莲",new Integer(82),new Integer(1969),new Integer(1510)},
                            {"王鹏",new Integer(47),new Integer(1957),new Integer(1040)},
                            {"王鹏",new Integer(61),new Integer(1957),new Integer(1180)},
                            {"王鹏",new Integer(90),new Integer(1987),new Integer(1770)},                };
            String[] n={"姓名","工号","出生年月","薪水"};
            defaultModel=new DefaultTableModel(p,n);
    //        defaultModel=new DefaultTableMode(p,n);
            table=new JTable(defaultModel);
            table.setPreferredScrollableViewportSize(new Dimension(400,80));
            JScrollPane s=new JScrollPane(table);
            JPanel panel=new JPanel();
            JButton b=new JButton("增加行");
            panel.add(b);
            panel.add(b);
            b.addActionListener(this);
            b=new JButton("删除行");
            panel.add(b);
            panel.add(b);
            b.addActionListener(this);
            Container contentPane=f.getContentPane();
            contentPane.add(panel,BorderLayout.NORTH);
            contentPane.add(s,BorderLayout.CENTER);
            f.setTitle("AddRemoveCells");
    //        f.back();
            f.pack();
            f.setVisible(true);
            f.addWindowListener(new WindowAdapter()
            {
                public void windowClosing(WindowEvent e)
                {System.exit(0);}
            });    }
        public void actionPerformed(ActionEvent e)
        {
                
            if(e.getActionCommand().equals("增加行"))
                defaultModel.addRow(new Vector());
            if(e.getActionCommand().equals("删除行"))
            {
                int rowcount=defaultModel.getRowCount()-1;
                if(rowcount>=0)
                {
                    defaultModel.removeRow(rowcount);
                    defaultModel.setRowCount(rowcount);            }
                table.revalidate();
            }
        }
        public static void main(String[] args)
        {
            new Test8();
        }
    }
      

  3.   

    package com.pansky.m;import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.*;public class test implements ActionListener {
    JTable table = null;
    DefaultTableModel defaultModel = null; public test() {
    JFrame f = new JFrame();
    Object[][] p = {
    { "王鹏", new Integer(91), new Integer(1949), new Integer(1910) },
    { "朱雪莲", new Integer(82), new Integer(1969), new Integer(1510) },
    { "王鹏", new Integer(47), new Integer(1957), new Integer(1040) },
    { "王鹏", new Integer(61), new Integer(1957), new Integer(1180) },
    { "王鹏", new Integer(90), new Integer(1987), new Integer(1770) }, };
    String[] n = { "姓名", "工号", "出生年月", "薪水" };
    defaultModel = new DefaultTableModel(p, n);
    table = new JTable(defaultModel);
    table.setPreferredScrollableViewportSize(new Dimension(400, 80));
    JScrollPane s = new JScrollPane(table);
    JPanel panel = new JPanel();
    JButton b = new JButton("增加行");
    panel.add(b);
    panel.add(b);
    b.addActionListener(this);
    b = new JButton("删除行");
    panel.add(b);
    panel.add(b);
    b.addActionListener(this);
    Container contentPane = f.getContentPane();
    contentPane.add(panel, BorderLayout.NORTH);
    contentPane.add(s, BorderLayout.CENTER);
    f.setTitle("AddRemoveCells");
    // f.back();
    f.setVisible(true);
    f.setSize(500, 500);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    }); } public void actionPerformed(ActionEvent e)
    {
    if(e.getActionCommand().equals("增加行"))
    defaultModel.addRow(new Vector());
    if(e.getActionCommand().equals("删除行"))
    {
    int rowcount=defaultModel.getRowCount()-1;
    if(rowcount>=0)
    {
    defaultModel.removeRow(rowcount);
    defaultModel.setRowCount(rowcount);}
    table.revalidate();
    }}
    public static void main(String[] args) {
    new test();
    }
    }
    main函数应该在类中你的写在方法里面了 ,你要是不理解的话就是在最后面的那个大括号前面加main函数就好了。再就是你的顶级容器没有设置大小 我给你加上了,你看看还有什么要改的