Please Help! - Refreshing a JTable ( JDBC)

Hi
Currently I am populating a JTable with data from an Access database.
I have not yet created my own Table Model.
My table is displayed in a frame with a button to the side which when clicked creates a dialog box which enables the user to input data. Clicking the OK button on this dialog box then updates the database and the dialog box is removed.
The problem is that the table is not updated with this newly input data.
I have tried using
((AbstractTableModel)table1.getModel()).fireTableDataChanged();
which doesn't work.
If I create my own Table Model and then call on the fireTableDataChanged method,will this update the table? I want the table to update as soon as the dialog box is closed.
I really would appreciate any help here. The JTable tutorial doesn't really help.
Thanks
LGS

Would you agree that it would be better to requery the database incase another user has subsequently posted new recordsConcurrency shouldn't be a problem, but if it buys you peace of mind, then do it.
Also -are you saying that I really should have my own Table Model? You should, this will give you more control over the operations of the table.
If you want to see how I implement DB access in my table, check out the imports from and exports to external databases at the link shown below:
http://www.aokabc.com
;o)
V.V.

Similar Messages

  • Please help in storing JTable in database

    hai Abrami,
    I saw in JDK\bin\demo\jfc\Tableexample. but it contans example only for populating the Table with the values from database which I finished alraedy. But I treid of storing the Table values in database using VArray. but it contradicts with the several operations such as retireving Single field from database Updating the database when value single populated table changes.
    So please help me in this.This isthe final part of project.

    Bathina,
    Did you try doing an Internet search? I did one for the terms "jtable" and "database". Here are my results:
    http://tinyurl.com/4ttl4
    And if you just want someone to do your work for you, then try HotDispatch or Rent-A-Coder (or similar -- there are lots of others like these two).
    Good Luck,
    Avi.

  • Java beginner, please help!! (oracle jdbc setting)

    Hi, I am a java beginner. I can't access remote oracle db from my computer. please help me. I can't figure out the problem.
    1.The error------------------------------------------------------------
    Exception in thread "main" java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:532)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at testdb.main(testdb.java:9)
    2.JDBC DRIVER is in----------------------------------------------------
    c:\j2sdk1.4.1_02\jdbc\classes12.zip
    3.CLASSPATH is --------------------------------------------------------
    .;c:\j2sdk1.4.1_02\bin;c:\j2sdk1.4.1_02\jdbc;
    4.My program is--------------------------------------------------------
    import java.sql.*;
    class testdb
    public static void main (String args[])
    throws SQLException,ClassNotFoundException
    Connection conn=
    DriverManager.getConnection("jdbc:oracle:thin:@111.31.111.11:1526:ORA81","scott","tiger");
    Statement stmt = conn.createStatement();
    ResultSet rset=stmt.executeQuery("SELECT EMPNO FROM EMP");
    while (rset.next()) {
    System.out.println (rset.getString(1));
    5. Why can't i connect to db?

    Hi...i have the same problem and can't seem to solve it
    this is my source code
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    public class TextToDatabaseTable {
    public static void main (String[] args) {
    try {
    // connect to db
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection con = DriverManager.getConnection("jdbc:oracle:thin:@cs-bid:1521:SVRDESK", "lynn", "abc");
    catch( Exception e) {
    e.printStackTrace();
    and this is my error
    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at TextToDatabaseTable.main(TextToDatabaseTable.java:12)
    and i try the methods above
    C:\download\Lynn>java -classpath c:\download\lynn;classes12.zip TextToDatabaseTable
    C:\download\Lynn>java TextToDatabaseTable
    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at TextToDatabaseTable.main(TextToDatabaseTable.java:12)
    i'm using oracle 8i with tomcat on win 2k server.
    i dunno what's wrong with it...do i need to set any classpath?
    i have TOMCAT_HOME and JAVA_HOME Variables in My Environment Variables.
    Do i need to set anything for these variables?
    Do i need to download any patches? I'm kinda confused.
    Thanks!

  • Please help - Stuck with JTable???

    Hi everyone, i have had this problem now for ages and really wanna solve it - hope u can help!
    I have a Jtable and basically column 3 has a value in it, column 4 is editable and takes in a value that the user enters. I need to take the value from column 3 and multiply it by the number entered into column 4 to update column 5 with the result.
    I have looked over and over the API for this and saw working examples, however i am using my own table model class and finding it hard to adapt these examples to work with my code, below is my table model class and the method i have written to try undertake this piece of functionality, can anyone help me get this working - dukes!!
    class ResultSetTableModel extends AbstractTableModel {
    protected Vector columnHeaders;
    protected Vector tableData;
    protected Vector rowData;
    private Connection con;    
    private int column_count;
    int QTY_COLUMN = 4;
    private double value;
    private JTable table;
    public void fillTableModel (ResultSet result) throws SQLException {
         ResultSetMetaData rsmd = result.getMetaData();
         int count = rsmd.getColumnCount();
         columnHeaders = new Vector();
         tableData = new Vector ();
         for (int i = 1; i <= count; i++)
              columnHeaders.addElement(rsmd.getColumnName (i));
              //System.out.println(rsmd.getColumnName(i));
         columnHeaders.addElement("Qty");
         columnHeaders.addElement("Total");
         while (result.next())
              rowData = new Vector (count);
              int row = 0;
              for (int i = 1; i <= count ; i++)
                   rowData.addElement (result.getObject(i));          
              rowData.addElement("4");
              rowData.addElement("0.00");
              tableData.addElement (rowData);
         result.close();
         fireTableDataChanged();
    public int getColumnCount ()
         return columnHeaders.size();     
    public int getRowCount ()
         return tableData.size();          
    /*public Object getValueAt (int row, int column)
         Vector rowData = (Vector) (tableData.elementAt (row));   
         return rowData.elementAt (column);
    public Object getValueAt(int row, int col){  //This is the method i have written
         int sum = 0; 
         if(col == 5) {   
         try {     
              sum = Integer.parseInt((String)getValueAt(row, 3)) * Integer.parseInt((String)getValueAt(row,4));//Need to take a user input here instead of a value - i think!   
         catch (Exception e)    { //Sum above not working as column 5 displays the number 4 in each row     
              sum = 4;   
         return (new Double(sum)); 
         else  {   
              Vector rowData = (Vector) (tableData.elementAt (row));   
              return rowData.elementAt (col); 
    public boolean isCellEditable (int row, int column )
         return (column == QTY_COLUMN);
    public String getColumnName (int column)
         return (String) (columnHeaders.elementAt (column));
    public void emptyColumn(int column){   
         int rowCount = tableData.size();       
         for (int i = 0; i < rowCount; i++)    {       
              Vector rowData = (Vector)tableData.elementAt(i);               
              rowData.setElementAt("", column);   
         fireTableDataChanged();
    public void setValueAt(Object value, int row, int column) {
             ((Vector)tableData.elementAt(row)).setElementAt(value, column);
             fireTableCellUpdated(row, 5);
    }Can anyone please help and yes im desperate, he he
    Thanks in advance

    Here's something:import java.awt.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class Test extends JFrame {
        public Test () {
            getContentPane ().setLayout (new BorderLayout ());
            getContentPane ().add (new JTable (new TestModel ()));
            setDefaultCloseOperation (EXIT_ON_CLOSE);
            setTitle ("Test");
            pack ();
            setLocationRelativeTo (null);
            show ();
        public static void main (String[] parameters) {
            new Test ();
        private class TestModel extends AbstractTableModel {
            private java.util.List data;
            public TestModel () {
                data = new ArrayList ();
                data.add (new Pair (3, 4));
                data.add (new Pair (1, 7));
                data.add (new Pair (2, 9));
                data.add (new Pair (6, 5));
                data.add (new Pair (8, 0));
            public int getRowCount () {
                return data.size ();
            public int getColumnCount () {
                return 3;
            public Object getValueAt (int r, int c) {
                Pair pair = (Pair) data.get (r);
                int value;
                switch (c) {
                    case 0:
                        value = pair.a;
                        break;
                    case 1:
                        value = pair.b;
                        break;
                    default:
                        value = pair.a * pair.b;
                        break;
                return new Integer (value);
            public Class getColumnClass (int c) {
                return Integer.class;
            public boolean isCellEditable (int r, int c) {
                return c < 2;
            public void setValueAt (Object wrappedValue, int r, int c) {
                Pair pair = (Pair) data.get (r);
                int value = ((Integer) wrappedValue).intValue ();
                switch (c) {
                    case 0:
                        pair.a = value;
                        break;
                    case 1:
                        pair.b = value;
                        break;
                fireTableRowsUpdated (r, r);
            private class Pair {
                public int a;
                public int b;
                public Pair (int a, int b) {
                    this.a = a;
                    this.b = b;
    }Kind regards,
      Levi

  • Please help in my first jdbc code

    hi,
    in this code i want to get author book name from my database
    but the problem that : the compiler give error on these lines :
    statement= connection.createStatement();
    ResultSet resultset = statement.executeQuery("");
    statement.close();
    please see my code and help me
    import java.awt.Container;
    import java.beans.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    public class DisplayAuthors extends JFrame {
        static final String JDBC_DRIVER = "";
        static final String DATABASE_URL="JDBC:db2j:library";
        private Connection connection;
        private Statement statement;
        public DisplayAuthors(){
            try{
                System.setProperty("db2j.system.home", "C:/Documents and Settings/beshoy/My Documents/NetBeansProjects/JDBC");
                Class.forName(JDBC_DRIVER);
                connection=DriverManager.getConnection(DATABASE_URL);
                statement=  (Statement) connection.createStatement();
                ResultSet resultset/*=statement.executeQuery("")*/;
                StringBuffer results= new StringBuffer();
                ResultSetMetaData metadata=resultset.getMetaData();
                int numberofcol=metadata.getColumnCount();
                for(int i=0;i<numberofcol;++i){
                    results.append(metadata.getCatalogName(i)+"\t");
                results.append("\n");
                while(resultset.next()){
                    for(int i=1;i<=numberofcol;++i){
                        results.append(resultset.getObject(i)+"\t");
                    results.append("\n");
                JTextArea area=new JTextArea(results.toString());
                Container container=getContentPane();
                container.add(new JScrollPane(area));
                setSize(300,100);
                setVisible(true);
            catch(ClassNotFoundException classnotfound){
                JOptionPane.showMessageDialog(null,classnotfound.getMessage(),"Database error",JOptionPane.ERROR_MESSAGE);
                System.exit(1);
            catch(ClassNotFoundException classnotfound){
                JOptionPane.showMessageDialog(null,classnotfound.getMessage(),"Driver not found", JOptionPane.ERROR_MESSAGE);
                System.exit(1);
            finally{
                try{
                    statement.close();
                    connection.close();
                catch(SQLException sqlexception){
                    JOptionPane.showMessageDialog(null, sqlexception.getMessage(),"Database error",JOptionPane.ERROR_MESSAGE);
                    System.exit(1);
        public static void main(String[]args){
            DisplayAuthors window=new DisplayAuthors();
            window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }thanks in advance

    beshoy wrote:
    Compiling 1 source file to C:\Documents and Settings\beshoy\My Documents\NetBeansProjects\JDBC\build\classes
    C:\Documents and Settings\beshoy\My Documents\NetBeansProjects\JDBC\src\project\DisplayAuthors.java:30: incompatible types
    found : java.sql.Statement
    required: java.beans.Statement
    statement= connection.createStatement();You declared 'statement' as java.beans.Statement instead of java.sql.Statement. The Connection#createStatement() returns java.sql.Statement, not java.beans.Statement.
    How did you miss this one in the JDBC tutorial? [http://java.sun.com/docs/books/tutorial/jdbc/index.html]
    C:\Documents and Settings\beshoy\My Documents\NetBeansProjects\JDBC\src\project\DisplayAuthors.java:31: cannot find symbol
    symbol : method executeQuery(java.lang.String)
    location: class java.beans.Statement
    ResultSet resultset = statement.executeQuery("");This one will solve itself if you fix the first error.
    C:\Documents and Settings\beshoy\My Documents\NetBeansProjects\JDBC\src\project\DisplayAuthors.java:68: cannot find symbol
    symbol : method close()
    location: class java.beans.Statement
    statement.close();This one will solve itself if you fix the first error.

  • Please help me..JTable trouble

    Hi all java guru,
    i've have a JTable in which i want to insert some styled text (e.g. bold,underline,italic).... i use a JEditorPane as CellEditor and JEditorPane as renderer. In each JEditorPane i have registered a StyledEditorKit that is used for styles.
    I've noted that when i insert styled text, initially cell maintains text style, but when i click on other cell,style of text disappears....i want to specify that i don't want to add style to entire cell, but i wish to add style at a portion of text.....
    notbold bold | not styled text
    Cell0 ----------------------- Cell1
    Is this behavior normally ???
    Then i've implemented a CustomTableModel that maintains information about text style, in such way that when renderer cell, i can rebuild exact text with its style....same method is adopted for CellEditor.
    It is possible to have more than one JTable in my application....then to correctly handle all JTables ' put the in a vector and during editing and rendering i find current focusable JTable and edit/render it.
    It seems a right solution ???
    I insert style on text using a toolbar and menubar in a dynamically way.
    Please, give to me an advice...Is right this solution??Or exist another way to resolve this proble in a more elegant way??
    Tnx in advance
    regards,
    anti-shock

    That's correct.
    Try to set HTMLEditorKit for your editor/renderer JTextPane. In the TableModel you can save text from textPane.getText() and set the text in the renderer component in the appropriate renderer's method.
    regards,
    Stas

  • Please Help me in JTable Updating   - URGENT

    Hai all
    am corrently working on a project which am using swing of 1.4
    here in one screen when user enteres data in JTable and clicks submit button i must read the whole Table model of the table and i will insert it to DB.
    in this am gettting problem.
    that is
    when user enters data into jtable and user directly clicks submit i can take all the data iin the table but only on tablce colum value i cant take which is the user currencly entering or modifying the filed.
    if after entering data i need to click any other cell or i need to just click tab to come out of the cell then only i cant take the data from that cell when inserting .
    pls anybody help me how to come out of this problem.
    thanking you
    Rajesh

    Hi
    before you save the changes you have to call stopCellEditing method.

  • Please help me with JTable

    I am working with a 2 column JTable and I have to map value together from left to right on a one to many relationship. So the user should never enter data on the first column of the JTable more than one time. How would I go about making sure no one is able to enter the same value twice on the first column?

    A TableModelListener fires an event "after" the model has already been updated.
    A better approach would probably be to write a custom editor to prevent the model from being updated in the first place. Search the forum for my "Table Edit" (without the space) example that shows a simple example of writing a custom editor. You would need to have access to the TableModel and would then need to loop through every row of the column to make sure the value entered does not already exist.

  • Jtable Update problem .. Please help !!!!!!!!

    Hi ,
    I am trying to get my updated Jtable, stored in a table of database over a previous table ......after updating it via drag n drop ....
    But even after I change the cell position to make the changes ... it still takes up the old value of that cell and not the new one while writing the data in the database table...
    Here is the code .... Please see it and tell me if it is possible :
    package newpackage;
    import java.sql.*;
    import java.util.Vector;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.Dimension;
    import java.text.*;
    import newpackage.ExcelExporter;
    import java.awt.Dimension;
    import javax.swing.border.*;
    import javax.swing.table.*;
    import java.awt.datatransfer.*;
    import java.awt.dnd.*;
    import java.awt.image.*;
    import java.io.*;
    import java.util.*;
    import java.awt.print.*;
    import java.awt.*;
    import java.io.*;
    import java.util.Random.*;
    import javax.swing.*;
    import java.text.*;
    import javax.swing.DefaultCellEditor;
    import javax.swing.JComboBox;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.TableColumn;
    public class tab7le extends javax.swing.JFrame {
        Vector columnNames = new Vector();
        Vector data = new Vector();
        Connection con;
    Statement stat;
    ResultSet rs;
    int li_cols = 0;
    Vector allRows;
    Vector row;
    Vector newRow;
    Vector colNames;
    String dbColNames[];
    String pkValues[];
    String tableName;
    ResultSetMetaData myM;
    String pKeyCol;
    Vector deletedKeys;
    Vector newRows;
    boolean ibRowNew = false;
    boolean ibRowInserted = false;
        private Map<String, Color> colormap = new HashMap<String, Color>();
        /** Creates new form tab7le */
        public tab7le() {
            populate();
            initComponents();
           public void updateDB(){
                     try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          catch (ClassNotFoundException e){
                System.out.println("Cannot Load Driver!");
          try{
             String url = "jdbc:odbc:FAMS";
             con = DriverManager.getConnection(url);
             stat = con.createStatement();
             rs = stat.executeQuery("Select * from SubAllot");
             deletedKeys = new Vector();
             newRows = new Vector();
             myM = rs.getMetaData();
             tableName = myM.getTableName(1);
             li_cols = myM.getColumnCount();
             dbColNames = new String[li_cols];
             for(int col = 0; col < li_cols; col ++){
                dbColNames[col] = myM.getColumnName(col + 1);
             allRows = new Vector();
             while(rs.next()){
                newRow = new Vector();
                for(int i = 1; i <= li_cols; i++){
                   newRow.addElement(rs.getObject(i));
                } // for
                allRows.addElement(newRow);
             } // while
          catch(SQLException e){
             System.out.println(e.getMessage());
    String updateLine[] = new String[dbColNames.length];
          try{
             DatabaseMetaData dbData = con.getMetaData();
             String catalog;
             // Get the name of all of the columns for this table
             String curCol;
             colNames = new Vector();
             ResultSet rset1 = dbData.getColumns(null,null,tableName,null);
             while (rset1.next()) {
                curCol = rset1.getString(4);
                colNames.addElement(curCol);
             rset1.close();
             pKeyCol = colNames.firstElement().toString();
             // Go through the rows and perform INSERTS/UPDATES/DELETES
             int totalrows;
             totalrows = allRows.size();
             String dbValues[];
             Vector currentRow = new Vector();
             pkValues = new String[allRows.size()];
             // Get column names and values
             for(int i=0;i < totalrows;i++){
                currentRow = (Vector) allRows.elementAt(i);
                int numElements = currentRow.size();
                dbValues = new String[numElements];
                for(int x = 0; x < numElements; x++){
                   String classType = currentRow.elementAt(x).getClass().toString();
                   int pos = classType.indexOf("String");
                   if(pos > 0){ // we have a String
                      dbValues[x] = "'" + currentRow.elementAt(x) + "'";
                      updateLine[x] = dbColNames[x] + " = " + "'" + currentRow.elementAt(x) + "',";
                      if (dbColNames[x].toUpperCase().equals(pKeyCol.toUpperCase())){
                        pkValues[i] = currentRow.elementAt(x).toString() ;
                   pos = classType.indexOf("Integer");
                   if(pos > 0){ // we have an Integer
                      dbValues[x] = currentRow.elementAt(x).toString();
                      if (dbColNames[x].toUpperCase().equals(pKeyCol.toUpperCase())){
                         pkValues[i] = currentRow.elementAt(x).toString();
                      else{
                         updateLine[x] = dbColNames[x] + " = " + currentRow.elementAt(x).toString() + ",";
                   pos = classType.indexOf("Boolean");
                   if(pos > 0){ // we have a Boolean
                      dbValues[x] = currentRow.elementAt(x).toString();
                      updateLine[x] = dbColNames[x] + " = " + currentRow.elementAt(x).toString() + ",";
                      if (dbColNames[x].toUpperCase().equals(pKeyCol.toUpperCase())){
                         pkValues[i] = currentRow.elementAt(x).toString() ;
                } // For Loop
                // If we are here, we have read one entire row of data. Do an UPDATE or an INSERT
                int numNewRows = newRows.size();
                int insertRow = 0;
                boolean newRowFound;
                for (int z = 0;z < numNewRows;z++){
                   insertRow = ((Integer) newRows.get(z)).intValue();
                   if(insertRow == i+1){
                      StringBuffer InsertSQL = new StringBuffer();
                      InsertSQL.append("INSERT INTO " + tableName + " (");
                      for(int zz=0;zz<=dbColNames.length-1;zz++){
                         if (dbColNames[zz] != null){
                            InsertSQL.append(dbColNames[zz] + ",");
                      // Strip out last comma
                      InsertSQL.replace(InsertSQL.length()-1,InsertSQL.length(),")");
                      InsertSQL.append(" VALUES(" + pkValues[i] + ",");
                      for(int c=1;c < dbValues.length;c++){
                         InsertSQL.append(dbValues[c] + ",");
                      InsertSQL.replace(InsertSQL.length()-1,InsertSQL.length(),")");
                      System.out.println(InsertSQL.toString());
                      stat.executeUpdate(InsertSQL.toString());
                      ibRowInserted=true;
                } // End of INSERT Logic
                // If row has not been INSERTED perform an UPDATE
                if(ibRowInserted == false){
                   StringBuffer updateSQL = new StringBuffer();
                   updateSQL.append("UPDATE " + tableName + " SET ");
                   for(int z=0;z<=updateLine.length-1;z++){
                      if (updateLine[z] != null){
                         updateSQL.append(updateLine[z]);
                   // Replace the last ',' in the SQL statement with a blank. Then add WHERE clause
                   updateSQL.replace(updateSQL.length()-1,updateSQL.length()," ");
                   updateSQL.append(" WHERE " + pKeyCol + " = " + pkValues[i] );
                   System.out.println(updateSQL.toString());
                   stat.executeUpdate(updateSQL.toString());
                   } //for
             catch(Exception ex){
                System.out.println("SQL Error! Cannot perform SQL UPDATE " + ex.getMessage());
             // Delete records from the DB
             try{
                int numDeletes = deletedKeys.size();
                String deleteSQL;
                for(int i = 0; i < numDeletes;i++){
                   deleteSQL = "DELETE FROM " + tableName + " WHERE " + pKeyCol + " = " +
                                                ((Integer) deletedKeys.get(i)).toString();
                System.out.println(deleteSQL);
                   stat.executeUpdate(deleteSQL);
                // Assume deletes where successful. Recreate Vector holding PK Keys
                deletedKeys = new Vector();
             catch(Exception ex){
                System.out.println(ex.getMessage());
        public void populate()
            try
                //  Connect to the Database
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = DriverManager.getConnection("Jdbc:Odbc:FAMS"," "," ");
                System.out.println("ok1");
                //  Read data from a table
                String sql;
                 sql = "Select * from SubAllot";
                 System.out.println("ok1");
                Statement stmt = con.createStatement();
                System.out.println("ok1");
                ResultSet rs = stmt.executeQuery( sql );
                System.out.println("ok1");
                ResultSetMetaData md = rs.getMetaData();
                System.out.println("ok1");
                int columns = md.getColumnCount();
                for(int i = 0;i<columns;i++){
                    columnNames.addElement(md.getColumnName(i+1));
                    System.out.println("ok2");
                while (rs.next())
                    Vector row = new Vector(columns);
                    for (int i = 1; i <columns+1; i++)
                        row.addElement( rs.getObject(i) );
                    data.addElement( row );
            catch(Exception e){
                e.printStackTrace();
                 public void dropmenu(JTable table,TableColumn subpref1) {
            //Set up the editor for the sport cells.
            JComboBox comboBox = new JComboBox();
          for (int i = 0;i<=20;i++)
           comboBox.addItem(i);
            subpref1.setCellEditor(new DefaultCellEditor(comboBox));
            //Set up tool tips for the sport cells.
            DefaultTableCellRenderer renderer =
                    new DefaultTableCellRenderer();
            renderer.setToolTipText("Click for combo box");
            subpref1.setCellRenderer(renderer);
                       abstract class StringTransferHandler extends TransferHandler {
            public int dropAction;
            protected abstract String exportString(final JComponent c);
            protected abstract void importString(final JComponent c, final String str);
            @Override
            protected Transferable createTransferable(final JComponent c) {
                return new StringSelection(exportString(c));
            @Override
            public int getSourceActions(final JComponent c) {
                return MOVE;
            @Override
            public boolean importData(final JComponent c, final Transferable t) {
                if (canImport(c, t.getTransferDataFlavors())) {
                    try {
                        String str = (String) t.getTransferData(DataFlavor.stringFlavor);
                        importString(c, str);
                        return true;
                    } catch (UnsupportedFlavorException ufe) {
                    } catch (IOException ioe) {
                return false;
            @Override
            public boolean canImport(final JComponent c, final DataFlavor[] flavors) {
                for (int ndx = 0; ndx < flavors.length; ndx++) {
                    if (DataFlavor.stringFlavor.equals(flavors[ndx])) {
                        return true;
                return false;
        class TableTransferHandler extends StringTransferHandler {
            private int dragRow;
            private int[] dragColumns;
            private BufferedImage[] image;
            private int row;
            private int[] columns;
            public JTable target;
            private Map<String, Color> colormap;
            private TableTransferHandler(final Map<String, Color> colormap) {
                this.colormap = colormap;
            @Override
            protected Transferable createTransferable(final JComponent c) {
                JTable table = (JTable) c;
                dragRow = table.getSelectedRow();
                dragColumns = table.getSelectedColumns();
                createDragImage(table);
                return new StringSelection(exportString(c));
            protected String exportString(final JComponent c) {
                JTable table = (JTable) c;
                row = table.getSelectedRow();
                columns = table.getSelectedColumns();
                StringBuffer buff = new StringBuffer();
                colormap.clear();
                for (int j = 0; j < columns.length; j++) {
                    Object val = table.getValueAt(row, columns[j]);
                    buff.append(val == null ? "" : val.toString());
                    if (j != columns.length - 1) {
                        buff.append(",");
                    colormap.put(row+","+columns[j], Color.LIGHT_GRAY);
                table.repaint();
                return buff.toString();
            protected void importString(final JComponent c, final String str) {
                target = (JTable) c;
                DefaultTableModel model = (DefaultTableModel) target.getModel();
                String[] values = str.split("\n");
                int colCount = target.getSelectedColumn();
                int max = target.getColumnCount();
                for (int ndx = 0; ndx < values.length; ndx++) {
                    String[] data = values[ndx].split(",");
                    for (int i = 0; i < data.length; i++) {
                        String string = data;
    if(colCount < max){
    Object val = model.getValueAt(target.getSelectedRow(), colCount);
    model.setValueAt(string, target.getSelectedRow(), colCount);
    model.setValueAt(val, dragRow, dragColumns[i]);
    colCount++;
    public BufferedImage[] getDragImage() {
    return image;
    private void createDragImage(final JTable table) {
    if (dragColumns != null) {
    try {
    image = new BufferedImage[dragColumns.length];
    for (int i = 0; i < dragColumns.length; i++) {
    Rectangle cellBounds = table.getCellRect(dragRow, i, true);
    TableCellRenderer r = table.getCellRenderer(dragRow, i);
    DefaultTableModel m = (DefaultTableModel) table.getModel();
    JComponent lbl = (JComponent) r.getTableCellRendererComponent(table,
    table.getValueAt(dragRow, dragColumns[i]), false, false, dragRow, i);
    lbl.setBounds(cellBounds);
    BufferedImage img = new BufferedImage(lbl.getWidth(), lbl.getHeight(),
    BufferedImage.TYPE_INT_ARGB_PRE);
    Graphics2D graphics = img.createGraphics();
    graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
    lbl.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));
    lbl.paint(graphics);
    graphics.dispose();
    image[i] = img;
    } catch (RuntimeException re) {
    class TableDropTarget extends DropTarget {
    private Insets autoscrollInsets = new Insets(20, 20, 20, 20);
    private Rectangle rect2D = new Rectangle();
    private TableTransferHandler handler;
    public TableDropTarget(final TableTransferHandler h) {
    super();
    this.handler = h;
    @Override
    public void dragOver(final DropTargetDragEvent dtde) {
    handler.dropAction = dtde.getDropAction();
    JTable table = (JTable) dtde.getDropTargetContext().getComponent();
    Point location = dtde.getLocation();
    int row = table.rowAtPoint(location);
    int column = table.columnAtPoint(location);
    table.changeSelection(row, column, false, false);
    paintImage(table, location);
    autoscroll(table, location);
    super.dragOver(dtde);
    public void dragExit(final DropTargetDragEvent dtde) {
    clearImage((JTable) dtde.getDropTargetContext().getComponent());
    super.dragExit(dtde);
    @Override
    public void drop(final DropTargetDropEvent dtde) {
    Transferable data = dtde.getTransferable();
    JTable table = (JTable) dtde.getDropTargetContext().getComponent();
    clearImage(table);
    handler.importData(table, data);
    super.drop(dtde);
    private final void paintImage(final JTable table, final Point location) {
    Point pt = new Point(location);
    BufferedImage[] image = handler.getDragImage();
    if (image != null) {
    table.paintImmediately(rect2D.getBounds());
    rect2D.setLocation(pt.x - 15, pt.y - 15);
    int wRect2D = 0;
    int hRect2D = 0;
    for (int i = 0; i < image.length; i++) {
    table.getGraphics().drawImage(image[i], pt.x - 15, pt.y - 15, table);
    pt.x += image[i].getWidth();
    if (hRect2D < image[i].getHeight()) {
    hRect2D = image[i].getHeight();
    wRect2D += image[i].getWidth();
    rect2D.setSize(wRect2D, hRect2D);
    private final void clearImage(final JTable table) {
    table.paintImmediately(rect2D.getBounds());
    private Insets getAutoscrollInsets() {
    return autoscrollInsets;
    private void autoscroll(final JTable table, final Point cursorLocation) {
    Insets insets = getAutoscrollInsets();
    Rectangle outer = table.getVisibleRect();
    Rectangle inner = new Rectangle(outer.x + insets.left,
    outer.y + insets.top,
    outer.width - (insets.left + insets.right),
    outer.height - (insets.top + insets.bottom));
    if (!inner.contains(cursorLocation)) {
    Rectangle scrollRect = new Rectangle(cursorLocation.x - insets.left,
    cursorLocation.y - insets.top,
    insets.left + insets.right,
    insets.top + insets.bottom);
    table.scrollRectToVisible(scrollRect);
    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
    jScrollPane1 = new javax.swing.JScrollPane();
    table = new javax.swing.JTable();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    table.setModel(new javax.swing.table.DefaultTableModel(
    data, columnNames
    jScrollPane1.setViewportView(table);
    //populate();
    table.getTableHeader().setReorderingAllowed(false);
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    table.setCellSelectionEnabled(true);
    table.setDragEnabled(true);
    TableTransferHandler th = new TableTransferHandler(colormap);
    table.setTransferHandler(th);
    table.setDropTarget(new TableDropTarget(th));
    dropmenu(table, table.getColumnModel().getColumn(11));
    jButton1.setText("Update");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    jButton2.setText("Ex");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton2ActionPerformed(evt);
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(92, 92, 92)
    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 605, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(layout.createSequentialGroup()
    .addGap(347, 347, 347)
    .addComponent(jButton1)
    .addGap(115, 115, 115)
    .addComponent(jButton2)))
    .addContainerGap(73, Short.MAX_VALUE))
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(47, 47, 47)
    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 354, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(58, 58, 58)
    .addComponent(jButton1)
    .addContainerGap(83, Short.MAX_VALUE))
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jButton2)
    .addGap(65, 65, 65))))
    pack();
    }// </editor-fold>
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
    updateDB(); // TODO add your handling code here:
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
    try {
    String pathToDesktop = System.getProperty("user.home")+File.separator+"Desktop";
    pathToDesktop = pathToDesktop + "//Final Allotment.xls";
    ExcelExporter exp = new ExcelExporter();
    exp.exportTable(table, new File(pathToDesktop));
    JOptionPane.showMessageDialog(this,"File exported and saved on desktop!");
    catch (IOException ex) {
    System.out.println(ex.getMessage());
    ex.printStackTrace();
    } // TODO add your handling code here:
    * @param args the command line arguments
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new tab7le().setVisible(true);
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable table;
    // End of variables declaration
    Please help !!!!!!!!
    Thanks in advance.....                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

    Here is the code Do you expect people to read through 400 lines of code to understand what you are doing?
    Why post code with access to a database? We can't access the database.
    Search the forum for my "Database Information" (without the space) example class which shows you how to refresh a table with new data.
    If you need further help then you need to create a [Short, Self Contained, Compilable and Executable, Example Program (SSCCE)|http://homepage1.nifty.com/algafield/sscce.html], that demonstrates the incorrect behaviour.

  • Please help me..about JTable ..Please please

    I have a JTable and tried to set the width for its columns..but I dont
    know why it doesnt work..here's my codes:
    Please help me..thanks..
    import javax.swing.table.TableColumn;
    import javax.swing.table.*;
    JTable table = new JTable();
    //a method{
    DefaultTableModel model = new DefaultTableModel(rowData, columnNames) {
    public boolean isCellEditable(int row, int col){   return false; }
    table.setModel(model);
    TableColumn column = tblEntryList.getColumnModel().getColumn(0);
    column.setPreferredWidth(25);
    column = tblEntryList.getColumnModel().getColumn(1);
    column.setPreferredWidth(100);

    I did feed the data into the table..you can tell by looking at my codes..
    please show me..dont know why it doesnt work.
    I just have my tlbEntrylist declared as
    String[][] rowData = new String[0][];
    String[] columnNames = {"Cnt","Name","Text"};
    JTable tblEntryList = new JTable(rowData, columnNames);
    //then whenever I click a a button , will call loadTableEntries()
    to remove all row data and refresh with new data..so I have to
    set new new model for this table.
    private void loadTableEntries()
    tblEntryList.removeAll(); // Remove old entries
    Object[][] rowData = new Object[entries.length][3];
    //feed the table of new data
    for(int i=0;i<rowData.length;i++)
    rowData[0] =new Integer(entries[i].getTimesUsed());
    rowData[i][1] = entries[i].getName();
    rowData[i][2] = entries[i].getText();
    String[] columnNames = {"Cnt","Name","Text"};
    // Create a new model and load it with new values
    DefaultTableModel model = new DefaultTableModel(rowData, columnNames) {
    public boolean isCellEditable(int row, int col){   return false; }
    tblEntryList.setModel(model);
    TableColumn col = tblEntryList.getColumn(tblEntryList.getModel().getColumnName(0));
    col.setPreferredWidth(10);
    col = tblEntryList.getColumn(tblEntryList.getModel().getColumnName(1));
    col.setPreferredWidth(25);
    I dont know what i'm doing wrong here but it ddint work..

  • Please Help! ERROR: Application Server failed. when Refreshing

    Please help on this below issue. Thanks.
    We have a requirement that using ASP.NET (C#), we need to open saved .rpt file (saved with data and the rpt file is assigned to the web page as query string) and let the users refresh themselves with latest data by clicking at refresh icon of the CrystalReportViewer. But it throws 'The Report Application Server failed' error message. What could cause this message. below is the piece of code we are using to configure the report.
    private void ConfigureCrystalReports()
    string reportPath = Server.MapPath("Reports
    SEMS0001_UBS.rpt");
    this.CrystalReportSource2.ReportDocument.Load(reportPath);
    CrystalReportViewer1.Visible = false;
    SetDBLogonForReport(this.CrystalReportSource2.ReportDocument);
    int i = 0;
    foreach (ParameterField field in this.CrystalReportSource2.ReportDocument.ParameterFields)
    field.HasCurrentValue = true;
    //this.CrystalReportSource2.ReportDocument.Refresh();
    CrystalReportViewer1.ParameterFieldInfo = this.CrystalReportSource2.ReportDocument.ParameterFields;
    CrystalReportViewer1.Visible = true;
    public void SetDBLogonForReport(ReportDocument reportDocument)
    Tables tables = reportDocument.Database.Tables;
    connectionInfo.ServerName = "server"; //ConfigurationManager.AppSettings["DBServer"];
    connectionInfo.UserID = "user"; //ConfigurationManager.AppSettings["DBUser"];
    connectionInfo.Password = "passwd"; //XsiteWinRpt.ConnUtil.GetOnlyPasswordOfConnString(); //ConfigurationManager.AppSettings["DBPassword"];
    //foreach (CrystalDecisions.Shared.IConnectionInfo connection in reportDocument.DataSourceConnections)
    // connection.SetConnection(ConfigurationManager.AppSettings["DBServer"], "", ConfigurationManager.AppSettings["DBUser"], ConfigurationManager.AppSettings["DBPassword"]);
    // connection.SetLogon(ConfigurationManager.AppSettings["DBUser"], ConfigurationManager.AppSettings["DBPassword"]);
    foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
    TableLogOnInfo tableLogonInfo = table.LogOnInfo;
    tableLogonInfo.ConnectionInfo = connectionInfo;
    table.ApplyLogOnInfo(tableLogonInfo);
    //reportDocument.Database.Tables[0].ApplyLogOnInfo(tableLogonInfo);

    Attaching full code ... Our case is the RPT files are stored wih default parameters and saved data. We need to let users just refresh the rpt files with latest db data and overwrite with the same rpt files. But this code keep showing The application server failed mesg. when the refresh icon of viewer is clicked.
    Attaching the code as it is not properly attached in my previous reply ...
    =======================
    Begin - aspx.cs code
    =======================
    using System;
    using System.Data;
    using System.Data.OleDb;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.CrystalReports;
    using CrystalDecisions.Shared;
    using CrystalDecisions.Web;
    public partial class _Default : System.Web.UI.Page
        private ConnectionInfo connectionInfo = new ConnectionInfo();
        protected void Page_Load(object sender, EventArgs e)
            if (!IsPostBack)
                //ConfigureCrystalReports();
        protected void  CrystalReportViewer1_Init(object sender, EventArgs e)
            ConfigureCrystalReports();
        private void ConfigureCrystalReports()
            string reportPath = Server.MapPath(@"Reports\Report1.rpt");
            this.CrystalReportSource1.ReportDocument.Load(reportPath);
            CrystalReportViewer1.Visible = false;
            SetDBLogonForReport(this.CrystalReportSource1.ReportDocument);
            foreach (ParameterField field in this.CrystalReportSource1.ReportDocument.ParameterFields)
                field.HasCurrentValue = true;
            //this.CrystalReportSource1.ReportDocument.Refresh();
            CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
            CrystalReportViewer1.Visible = true;
        public void ReportDocument_RefreshReport(object sender, EventArgs e)
            try
    SetDBLogonForReport(this.CrystalReportSource1.ReportDocument);
    CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
                this.CrystalReportSource1.ReportDocument.SetDatabaseLogon("user", "passwd", "server", "");
                foreach (ParameterField field in this.CrystalReportSource1.ReportDocument.ParameterFields)
                    field.HasCurrentValue = true;
                    field.AllowCustomValues = true;
                    //field.EnableNullValue = true;               
                this.CrystalReportSource1.ReportDocument.Refresh();
                       this.CrystalReportSource1.ReportDocument.SaveAs(@"C:\Inetpub\wwwroot\XsiteRpt\Reports\Report1.RPT", true);
            catch (Exception ex)
                Msg.Text = ex.Message;
        public void SetDBLogonForReport(ReportDocument reportDocument)
            Tables tables = reportDocument.Database.Tables;
            connectionInfo.ServerName = "server"; //ConfigurationManager.AppSettings["DBServer"];
            connectionInfo.UserID = "user"; //ConfigurationManager.AppSettings["DBUser"];
            connectionInfo.Password = "passwd"; //XsiteWinRpt.ConnUtil.GetOnlyPasswordOfConnString(); //ConfigurationManager.AppSettings["DBPassword"];
            foreach (CrystalDecisions.CrystalReports.Engine.Table table in reportDocument tables)
                TableLogOnInfo tableLogonInfo = table.LogOnInfo;
                tableLogonInfo.ConnectionInfo = connectionInfo;
                table.ApplyLogOnInfo(tableLogonInfo);
    =======================
    End - aspx.cs.code
    =======================
    =======================
    Begin - Assemblies
    =======================
    <assemblies>
                        <add assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
                        <add assembly="CrystalDecisions.Shared, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
                        <add assembly="CrystalDecisions.ReportSource, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
                        <add assembly="CrystalDecisions.Enterprise.Framework, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
                        <add assembly="CrystalDecisions.Enterprise.Desktop.Report, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
                        <add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
                        <add assembly="CrystalDecisions.Enterprise.InfoStore, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/><add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
          </assemblies>
    =======================
    End - Assemblies
    =======================
    =======================
    Begin - aspx
    =======================
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Xsite.aspx.cs" Inherits="_Default" %>
    <%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
        Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Refresh Report</title>
        <link href="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer3/css/default.css"
            rel="stylesheet" type="text/css" />
        <link href="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer3/css/default.css"
            rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Panel ID="PanelMsg" runat="server">
            <br />
            <asp:Label ID="Msg" runat="server" Font-Bold="False" Font-Names="Verdana" ForeColor="Navy"></asp:Label>
            <br />
            </asp:Panel>
            <asp:Panel ID="PanelViewer" runat="server">
            <CR:CrystalReportViewer ID="CrystalReportViewer1" OnReportRefresh="ReportDocument_RefreshReport" runat="server" AutoDataBind="True"
                EnableDatabaseLogonPrompt="False" EnableParameterPrompt="False" ReuseParameterValuesOnRefresh="True" HasRefreshButton="True" Height="820px" OnInit="CrystalReportViewer1_Init" ReportSourceID="CrystalReportSource1" ShowAllPageIds="True" Width="1215px" />
            <CR:CrystalReportSource ID="CrystalReportSource1" runat="server">           
            </CR:CrystalReportSource>
            </asp:Panel>
        </div>
        </form>
    </body>
    </html>
    =======================
    End - aspx
    =======================

  • Please Help.JTable insert styled text

    Hi all java guru,
    on post http://forum.java.sun.com/thread.jsp?forum=57&thread=485469 i've depicted my scenario in which i have a JTable where i want to add styled text.
    i've implemented a CustomTableModel that maintains information about text style, in such way that when renderer cell, i can rebuild exact text with its style....same method is adopted for CellEditor.
    It is possible to have more than one JTable in my application....then to correctly handle all JTables ' put them in a vector and during editing and rendering i find current focusable/selected JTable and edit/render it.
    Clearly i maintain information about style of text when i insert it, that is when i insert text, i update my CustomTableModel...same thing must be done when i delete text from JTable...that is, i must update CustomTableModel too in this case.
    Because my CellEditor is a JEditorPane component (extend it) i've registered document associated to it to a DocumentListener that notify every time that a remove operation is happens.
    What is the problem now???problem is that when i finish to edit a cell and click on another cell i've got a removeUpdate(DocumenEvent e) event, and i can't distinguish it.....it seems a real remove event....
    In this case(when i change cell) the code that is executes returns wrong result and invalidate all the rest.
    I think error is where i register celleditor , now i do it in CustomCellRenderer class that extend JEditorPane and implements TableCellRenderer.
    Please help me...this is a great trouble that invalidate all my work :(
    Any new idea is welcome.
    regards,
    anti-shock

    Hi stanislav, of course i can...you're a myth :)
    public class CustomCellEditor extends AbstractCellEditor implements TableCellEditor {
           CellEditor cellArea;
         JTable table;
         public CustomCellEditor(JTable ta) {
              super();
              table = ta;
              // this component relies on having this renderer for the String class
              MultiLineCellRenderer renderer = new MultiLineCellRenderer();
              table.setDefaultRenderer(String.class,renderer);
         public Object getCellEditorValue() {
              return cellArea.getText();
         public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,     int row, int column) {
              int start = 0;
              int end = 0;
                                               // Get current selected table
              TableEditor tb = (TableEditor) TableEditor.getSelectedTable();
              TableModel model = (TableModel) tb.getModel();
              Vector fontInfo = model.getFontFor(row,column);
              CellEditor cellArea = (CellEditor) ((CustomCellEditor)tb.getCellEditor (row,column)).getCellEditor();
              Document doc = cellArea.getDocument();
              String content = tb.getValueAt(row,column).toString();     
              if (doc!=null && fontInfo.size()>0 && !content.equals("")) {
                                                     // This method reads from model and get right style info
                                                     // for current text, and restore them
                                                     restoreFontWithAttributes(doc,fontInfo,content);
              else
                   cellArea.setText(tb.getValueAt(row,column).toString());
              cellArea.rowEditing = row;
              cellArea.columnEditing = column;
              cellArea.lastPreferredHeight = cellArea.getPreferredSize().height;
              return cellArea;
          * @return
         public CellEditor getCellEditor() {
              return cellArea;
         public class CellEditor extends JEditorPane {
              private CellStyledEditorKit k;
              public CellEditor() {
                    super("text/plain","");
                    k = new CellStyledEditorKit();
                    setEditorKit(k);
                    // I tried to add document here, but i have had wrong behavior
                   doc = new DocumentListener() {
                   public void removeUpdate(DocumentEvent e) {
                      // Get current selected table
                      TableEditor tb = (TableEditor) TableEditor.getSelectedTable();
                      TableModel model = (TableModel) tb.getModel();
                      model.updateFontInfo();
                   getDocument().addDocumentListener(doc);
    }Ok, stan...this is my CustomCellRenderer class....as i have already said, i have some style text info mainteined by CustomTableModel associated with JTable.
    I update CustomTableModel every time that an insert and remove operation happens.
    If i add a DocumentListener to CellEditor (that rapresents editor cell of my table) happens that, if i remove some character from an editing cell, i got a removeUpdate event.....and this is right!!! But if i change cell (e.g. supposing editing cell(1,1), click on cell(2,1) then stop edit cell(1,1) and start edit cell(2,1)) i got a removeUpdate event, that I don't wait for to me..
    Look at this:
    empty cell | some text
    cell 0 ------- cell1
    supposing you're in cell1 and you have finished to insert "some text".Then click on cell0, that is empty....then document associated with CellArea(extend JEditorPane) before of the click on cell0 had some text, but after click have no text, then for it a removeUpdate is happens.....and is that one i got..
    it's as if an unique document is associated to all cells, while should be one document for each cell (i hope this is right).
    Clearly, i've same code for renderer, in such way that i can restore style of text on rendering.
    Hope is clear....if U have any idea or suggestion please give to me.
    Tnx a lot Stanislav..
    regards,
    anti-shock

  • Error in JDBC while using in a Servlet.Please HeLP!!!!!!!

    &#304;s there any one can help me I will be very glad.
    I'm preparing a homework for University and have a small(for me B&#304;&#304;G) problem.
    I want to make a database connection with servlet .
    as a full working program I try to use CONNECT.java To Run in a Servlet.
    My program can run on eclipse platform with out any problem but when I want to use it in my server with servlet (I change the program as a servlet) I take This error What Sould I dou.
    PLEASE Help.....
    MY ERRoR is:
    java.lang.ClassNotFoundExeption: com.microsoft.jdbc.sqlserver.SQLserverDriver
    It works on Ecl&#304;pse but Not in my server with servlet
    HELP HELP HELP....

    You don't have the JDBC-SQLServer driver in the classpath when you run it on the server. (You probably added the driver into the Eclipse project library.)
    Depending on how you set up your server and java container, you might try putting the driver in the "WEB-INF/lib" directory (if it's a .jar file).

  • Refresh image in a ScrollingImagePanel. Please help me!

    Hello friends. I am new at the "Java World". At first, sorry for my bad English. Lets go:
    In my aplication I have to show a tiff image in a ScrollingImagePanel.I aplly some efects on the image, for example rotate the image, etc.
    It is working fine, but I have problem to refresh the image in the same ScrollingImagePanel.The code compiles but I have exceptions when I run the method:
    public void atualiza(){
    if (ziboro == false){ //no images displayed yet.
         ziboro = true;     
         JInternalFrame test = new JInternalFrame("Test",true,true,true,true);
    test.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    test.addInternalFrameListener(this);
    test.setLocation(10,10);
    test.setSize(new Dimension(200,200));
    ScrollingImagePanel FlipVPanel = new ScrollingImagePanel(imagemBufa, 800, 800);
    test.getContentPane().add(FlipVPanel);
    displayPanel.add(test);
    test.setVisible(true);
    test.moveToFront();
    return; }
    //This part is my problem.
    teste.getContentPane().remove(FlipVPanel);//it causes exception
    ScrollingImagePanel FlipVPanel = new ScrollingImagePanel(imagemBufa, 800, 800);
    teste.getContentPane().add(FlipVPanel);
    teste.setVisible(true);
    teste.moveToFront();
    I think tyhe problem is when I try to remove the ScrollingImagePanel, because when I add a ScrollingImagePanel and I remove imediatly after , the ScrollingImagePanel disapear.
    Please help me, you are my hope.
    Thanks a lot, lot, lot, ....!

    I can't either with my Treo700wx, and from what I see with my plan, it's definitely because of Alltel.  They have a seperately priced option for picture messaging that I had with my old (non-smart) phone that isn't even an option with the smart-choice packages.
    So...I'm also listening.  Having the only way to send pictures with the phone being through email is pretty dumb.  We pay enough for the plans, you'd think they could include it...or at least offer it as an option.
    Post relates to: Treo 700wx (Alltel)

  • JDBC for Postgresql(on Linux): java.lang.NullPointerExceptio--Please HELP!

    I'm trying to build a JSP web application with Apache Tomcat 4.0 on Linux, using PostgreSQL database.
    The test page for building a connection to the database is very simple.
    However, unfortunately, I always get the following error message from the web server.
    The code is also show below.
    I have another Tomcat server working on Window2000 with Oracle. So I change the JDBC driver to Oracle on that machine, and it works fine.
    I guessed I might have some problem with the Tomcat setting, but I'm not sure what I need to change.
    The directory of my web application is built under the webapps.
    And I've added JAVA_HOME, JAVA_HOME/lib/tool.jar, and JDBC for PostgreSQL to my CLASSPATH.
    Is there any other configuration that I missed?
    Please help if you see the problem.
    Thanks a lot in advance.
    Error message:
    type: Exception report
    message: Internal Server Error
    description: The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
    exception
    java.lang.NullPointerException
         at org.apache.jsp.index$jsp._jspService(index$jsp.java:231)
         at org.apache.jasper.runtime.HttpJspBase.service(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(Unknown Source)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(Unknown Source)
         at org.apache.jasper.servlet.JspServlet.service(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
         at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
         at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
         at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
         at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
         at org.apache.catalina.core.StandardContext.invoke(Unknown Source)
         at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
         at org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
         at org.apache.catalina.valves.AccessLogValve.invoke(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
         at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
         at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
         at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
         at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
         at org.apache.catalina.connector.http.HttpProcessor.process(Unknown Source)
         at org.apache.catalina.connector.http.HttpProcessor.run(Unknown Source)
         at java.lang.Thread.run(Thread.java:484)
    Here's my code:
    <%@ page language="java" import="java.io.*, java.sql.*, java.util.*, java.lang.*" %>
    <HTML>
    <HEAD>
    <TITLE>TEST</TITLE>
    </HEAD>
    <BODY>
    <b> City </b><br>
    <%
         Class.forName("org.postgresql.Driver");
         String sqlurl = "jdbc:postgresql://localhost:5432/customer";
         String username = "guest";
         String passwd = username;
         Connection conn = DriverManager.getConnection(sqlurl, username, passwd);
         Statement st = conn.createStatement();
         String queryStr = "select CITY from WEATHER";
         ResultSet rs = st.executeQuery(queryStr);
         if (rs != null){
              while(rs.next()){
                   String strCity = rs.getString(1);
    %>
    -- <%=strCity %> --<br>
    <%
         st.close();
         conn.close();
    %>
    </BODY>
    </HTML>

    Error is not there in the code what you are showing. Can you edit index$jsp.java and see what is there in line 231?
    You may find it in tomcat_home\work\your_application directory.
    Sudha

Maybe you are looking for

  • Receiver Mail Adapter: transformation of Content tag

    Hi, I have a problem with the transformation of the tag Content in  the e-mail message. I'm very ignorant about xsl and java transformation, but my problem is quite simple. My message, coming from an R/3 system, is this: <ns:Mail xmlns:ns="http://sap

  • As2 Inbound message processing

    Hi Am trying process custom xml using AS2 protocol but facing error while document Identifaction.It is throwing error as B2B-50547 Agreement not found for trading partners: FromTP null, ToTP MyCompany Here is what I have done. Created Custom document

  • HT204053 got 2 iphones can sync both on my mac book but can't do both on the pc?

    got 2 iphones can sync both on my mac book but can't do both on the pc?

  • Using cascade -- Help

    could someone explain to me how to use cascade in ejb3 I have the following: A --> B --> C --> D --> E (I need A for B and I need B for C ..etc) I created a method called deleteC() if I want to delete C .. then how can I delete all of its constraints

  • My google maps app is dropping pins by it self.

    It droppes pins to a location near where I am, seemingly at random and then it shows me the way to get there, all this without me doing anything. Is this a bug in the app or my iphone4 or is this a new feature within the app that allows this? This st