craftleft.gif (3002 bytes)QuickTable
Home | API | Tutorial | Download | Support | Contact topblack.gif (108 bytes)


QuickTable User Cp  |  Register  |  Members  |  Search  |  Help
    |- QuickTable Discussion Forums > Non-Database mode - Dataobjects/EJB/Hibernate/File/Array/Vector Post New Topic   Post A Reply
quick.dbtable.QuickVector cannot be cast to <Object> printer friendly version
next oldest post
Author Messages
McAnder
Unregistered
Edit or delete this message Reply w/Quote
Posted Monday, December 3, 2012 @ 07:20:29  

So my problem is that i use Array as data object and try to make cell listener so it writes values back to array after edit -
Code:
class ArrayCellListener implements DBTableCellListener

{
public Object cellValueChanged(int row, int col, Object oldValue, Object newValue)
{
//System.out.println(dBTable1.getRowObject(0));
try {

Film c = (Film)( dBTable1.getRowObject(row));

//based on which column the customer has updated, call the corresponding object method

if(col == 1){
Film name = (Film) dBTable1.getValueAt(row, 1);
c.setName(name.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
//always return the newvalue, so that quicktable updates this newvalue in table
return newValue;
}
}


dBTable1.getRowObject(row) throws exception
Code:
java.lang.ClassCastException: quick.dbtable.QuickVector cannot be cast to Film

at QuickTableInternalFrame$ArrayCellListener.cellValueChanged(QuickTableInternalFrame.java:86)
at quick.dbtable.DBTableModel.setValueAt(DBTableModel.java:1388)
at quick.dbtable.TableMap.setValueAt(TableMap.java:86)
at javax.swing.JTable.setValueAt(JTable.java:2710)
at javax.swing.JTable.editingStopped(JTable.java:4712)
at quick.dbtable.DBTableCellEditor.fireEditingStopped(DBTableCellEditor.java:948)
at quick.dbtable.DBTableCellEditor$EditorDelegate.actionPerformed(DBTableCellEditor.java:1054)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1633)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at java.awt.Component.processEvent(Component.java:6040)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4502)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.ArrayStoreException: java.lang.String
at quick.dbtable.QuickVector.set(QuickVector.java:279)
at quick.dbtable.QuickVector.setElementAt(QuickVector.java:115)
at quick.dbtable.DBTableModel.setValueAt(DBTableModel.java:1542)
at quick.dbtable.TableMap.setValueAt(TableMap.java:86)
at javax.swing.JTable.setValueAt(JTable.java:2710)
at javax.swing.JTable.editingStopped(JTable.java:4712)
at quick.dbtable.DBTableCellEditor.fireEditingStopped(DBTableCellEditor.java:948)
at quick.dbtable.DBTableCellEditor$EditorDelegate.actionPerformed(DBTableCellEditor.java:1054)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1633)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at java.awt.Component.processEvent(Component.java:6040)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4502)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Other parts of code

Code:

public QuickInternalFrame() throws Exception {

Film[][] Watch = new Film[2][2];
Watch[0][0] = new Film("Shrek");
Watch[0][1] = new Film("Road to Perdition");
Watch[1][0] = new Film("The Truth about Cats and Dogs");
Watch[1][1] = new Film("Enigma");
/**
* Properties prop = new Properties(); prop.put("delimiter",",");
* prop.put("firstRowHasColumnNames","true");
**/
dBTable1 = new DBTable();
dBTable1.addTableCellListener(new ArrayCellListener());
dBTable1.refresh(Watch);
Column c = dBTable1.getColumn(0);
c.setReadOnly(false);
c.setHeaderValue("Film");
c.setPreferredWidth(139);
c.setResizable(true);
c = dBTable1.getColumn(1);
c.setHeaderValue("Film 2");
c.setPreferredWidth(139);
getContentPane().add(dBTable1);
dBTable1.createControlPanel();
dBTable1.enableExcelCopyPaste();
dBTable1.setSkin(new PulseSkin());

/**
* dBTable1.setDatabaseDriver("com.mysql.jdbc.Driver");
* dBTable1.createControlPanel();
* dBTable1.setSelectSql("select first_name from actor");
* dBTable1.setPassword("root");
* dBTable1.setJdbcUrl("jdbc:mysql://localhost:3306/Sakila");
* dBTable1.setUser("root");
*
* try { dBTable1.connectDatabase(); dBTable1.refresh(); }
* catch(SQLException e) { e.printStackTrace(); }
* catch(ClassNotFoundException e) { e.printStackTrace(); }
**/
setResizable(true);
setSize(550, 500);
setVisible(true);
}

}

public QuickTableInternalFrame() throws Exception {
JDesktopPane desktopPane = new JDesktopPane();
getContentPane().setLayout(new BorderLayout());
getContentPane().add(desktopPane, BorderLayout.CENTER);
desktopPane.add(new QuickInternalFrame());

setSize(700, 700);
setVisible(true);
}

Fox1969
Unregistered
Edit or delete this message Reply w/Quote
Posted Monday, April 22, 2013 @ 07:31:44  

Hello!
I'm trying to use getRowObject(int row) with my table.
I know that getRowObject() return an object of type quick.dbtable.QuickVector so...if i write:
Vector V=(Vector)table.getRowObject(row);
I have a cast exception:
quick.dbtable.QuickVector cannot be cast to java.util.Vector

Can i use directly quick.dbtable.QuickVector ?
For example:
quick.dbtable.QuickVector V=(quick.dbtable.QuickVector)table.getRowObject(row);
I think i can't do this.

Please can you write me a little example? I need to use getRowObject in my DBTableEventListener to retrieve data from selected row

public void afterRowSelectionChange(int fromRow, int toRow)
{
Vector V=(Vector)table.getRowObject(toRow);
}

Thanks!

Post New Topic   Post A Reply Jump to:
Contact Us | QuickTable - A Java DBGrid | Privacy Policy All times are GMT -5 Hours.
Welcome to QuickTable Forums, Guest!  
Login
Username :
Password :
In order to fully utilize the abilities of this board, you are required to register as a member. Registration is free, and allows you to do lots of things including turning on or off certain features of this board. Register now!
Powered by CuteCast v2.0 BETA 2
Copyright © 2001-2003 ArtsCore Studios