[ steve585 @ 01.10.2011. 16:02 ] @
Poz,

vec godinama prograniram u VB-u i nedavno sam uzeo uciti pomalo Javu.

E sada generalno imam problem sa nacinom razmisljanja u Java-i.

Malo po malo privikavam se i hvatam pomalo konce...

Programiram u Netbeans-ima

I imam 2 klase:
1) Klasa koja sama za sebe savrseno radi u konzoli kada se pozove sa iz cmd-a

evo koda

Code:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jdbcrowsettest;

// Fig. 25.29: JdbcRowSetTest.java
 // Displaying the contents of the authors table using JdbcRowSet.
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import javax.sql.rowset.JdbcRowSet;
import com.sun.rowset.JdbcRowSetImpl; // Sun's JdbcRowSet implementation

public class JdbcRowSetTest
 {
 // JDBC driver name and database URL
 static final String DRIVER = "com.mysql.jdbc.Driver";
 static final String DATABASE_URL = "jdbc:mysql://localhost/books";
 static final String USERNAME = "user1";
 static final String PASSWORD = "";

 // constructor connects to database, queries database, processes
 // results and displays results in window
 public JdbcRowSetTest()
 {
 // connect to database books and query database
 try
 {
 Class.forName( DRIVER );

// specify properties of JdbcRowSet
JdbcRowSet rowSet = new JdbcRowSetImpl();
rowSet.setUrl( DATABASE_URL ); // set database URL
rowSet.setUsername( USERNAME ); // set username
rowSet.setPassword( PASSWORD ); // set password
rowSet.setCommand( "SELECT * FROM authors" ); // set query
rowSet.execute(); // execute query

// process query results
ResultSetMetaData metaData = rowSet.getMetaData();
 int numberOfColumns = metaData.getColumnCount();
 System.out.println( "Authors Table of Books Database:\n" );

 // display rowset header
 for ( int i = 1; i <= numberOfColumns; i++ )
 System.out.printf( "%-8s\t", metaData.getColumnName( i ) );
 System.out.println();

 // display each row
 while( rowSet.next())
 {
 for ( int i = 1; i <= numberOfColumns; i++ )
 System.out.printf( "%-8s\t",rowSet.getObject( i ) );
 System.out.println();
 } // end while

// close the underlying ResultSet, Statement and Connection
rowSet.close();

 } // end try
 catch ( SQLException sqlException )
 {
 sqlException.printStackTrace();
 System.exit( 1 );
 } // end catch
 catch ( ClassNotFoundException classNotFound )
 {
classNotFound.printStackTrace();
 System.exit( 1 );
 } // end catch
 } // end DisplayAuthors constructor
}
 // launch the application
 //public static void main( String args[] )
 //{
 //JdbcRowSetTest application = new JdbcRowSetTest();
 //} // end main
 //} // end class JdbcRowSetTest


2) Druga klasa je nastala iz VB logike koju cesto koristim graficki objekt --> modul --> procedura
Zelja mi je da klikom na JButton pokrenem klasu 1 i to ne ide

Evo koda

Code:

public class frmMain extends javax.swing.JFrame {

    /** Creates new form frmMain */
    public frmMain() {
        initComponents();
    }

    /** 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.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("jButton1");
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(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()
                .addGap(130, 130, 130)
                .addComponent(jButton1)
                .addContainerGap(197, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(69, 69, 69)
                .addComponent(jButton1)
                .addContainerGap(208, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
         JdbcRowSetTest  = new JdbcRowSetTest();
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new frmMain().setVisible(true);
               
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    // End of variables declaration

}



Moze li se to napraviti u Java-i na nacin na koji sam si to smislio ili mozda ne


[ biske86 @ 01.10.2011. 16:50 ] @
Citat:
steve585:
Zelja mi je da klikom na JButton pokrenem klasu 1 i to ne ide

Na koji način želiš da "pokreneš" klasu 1? Definiši malo preciznije pitanje. Jel hoćeš da rezultate koji se dovlače iz baze prikažeš u vidu tabele ili na panelu, ili šta?
[ steve585 @ 01.10.2011. 17:09 ] @
Idemo redom neka se prvo izvrsi sama klasa kao takva u cmd obliku

Kasnije bi dodao na formu i ono sto u VB-u se zove flexGrid i prebacio tamo rezultate

Zelio bih vidjeti kako manipulirati sa drugim klasama sa forme, jer radim uglavnom desktop aplikacije, pa me to najvise zanima
[ biske86 @ 01.10.2011. 18:56 ] @
Čini mi se da si dobro uradio kreiranje objekta prve klase u drugoj klasi. Kakvu grešku javlja?
[ steve585 @ 02.10.2011. 00:19 ] @
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - cannot find symbol
symbol: variable JdbcRowSetTest
location: class frmMain
at frmMain.jButton1MouseClicked(frmMain.java:74)
at frmMain.access$000(frmMain.java:16)
at frmMain$1.mouseClicked(frmMain.java:39)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
at java.awt.Component.processMouseEvent(Component.java:6266)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
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.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
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)
[ ghost in the shell @ 24.10.2011. 22:42 ] @
Greska je sto u ovom delu koda:
Code:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
         JdbcRowSetTest  = new JdbcRowSetTest();
    }


nisi imenovao instancu klase JdbcRowSetTest. Treba da stoji npr: JdbcRowSetTest jrTest = new JdbcRowSetTest();
Generalno u Javi dajes imena objektima.

Inace, ako radis desktop aplikacije, predlazem ti da dugmicima stavljas kod u ActionPerformed metodu.

pozz