import javax.swing.*;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class tabledemo extends JPanel
{
private boolean debug = false;
public tabledemo()
{
super(new GridLayout(1,0));
String[] columns={"name","id","place"};
Object[][] data={
{"hem",new Integer(1),"vizag"},
{"ram",new Integer(2),"vizag"},
{"hemram",new Integer(3),"vizag"}
};
final JTable tb = new JTable(data, columns);
if(debug)
{
tb.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent me)
{
printdebugdata(tb);
}
});
}
}
private void printdebugdata(JTable tb)
{
int numrows=tb.getRowCount();
int numcols=tb.getColumnCount();
javax.swing.table.TableModel tm = tb.getModel();
for(int i=0;i<numrows;i++)
{
System.out.println("rows : " + i);
for(int j=0;j<numcols;j++)
{
System.out.println("Rows and columns are : " + tb.getValueAt(i,j));
}
}
}
private static void createshowgui()
{
JFrame jf = new JFrame("emp table");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tabledemo newContentPane = new tabledemo();
newContentPane.setOpaque(true); //content panes must be opaque
jf.setContentPane(newContentPane);
//Display the window.
jf.pack();
jf.setVisible(true);
}
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void Run()
{
createshowgui();
}
});
}
}
getting error <anonymous tabledemo> is not a abstract and does not overide abstract method run() in Runnable

