Προς το περιεχόμενο

Java - Ασκήσεις για NetBeans & Matisse


Nadia88

Προτεινόμενες αναρτήσεις

Δημοσ.

Παιδια,πρεπει οπωσδηποτε να δω πως λυνονται αυτες οι ασκησεις.

Πραγματικα,δε μπορω να σας εξηγησω γιατι και πως.Ειμαι στα προθυρα κρισης πανικου.

Μαλλον,ας πουμε οτι εχεις μαθει οτι 1+1 κανουν 2,και σου ζητανε να λυσεις τριτοβαθμια εξισωση !..Και δινω και εξετασεις πανω σ'αυτα. :shock:

 

Αυτες ειναι οι εκφωνησεις:

 

1) Βάλε σε ένα top-level container 100 κουμπιά σειριακά τοποθετημένα και κάθε φορά που πατιέται ένα να εμφανίζεται ανάλογο μύνημα που να δείχνει το ποιό κουμπί πατήθηκε.

 

2) Φτιάξε ένα UI με δύο κουμπία(load, clear) και ένα text-area κάθε φορά που πατιέται το πρώτο να φορτώνει τα στοιχεία στο text-area από τη βάση ενώ κάθε φορά που πατιέται το δεύτερο να σβήνει ό,τι εμφανίζεται στο text-area.

 

Η (2) λεει,να γινει με το Matisse.Η (1) οχι.

Επισκέπτης
Δημοσ.

για αρχή, το netbeans το κατέβασες; το άνοιξες; προσπαθησες να φτιαξεις καινούργιο project?

η δεν προλαβαίνεις και απλά θες τις λύσεις;

Δημοσ.

Σ'ευχαριστω τοσο πολυ που απαντησες!!

Ναι,ναι,το εχω το NetBeans.Ξερω πως να φτιαχνω καινουριο project και τα βασικα.

ΑΥτΟ ομως,δε μπορω καν να φανταστω πως θα το κανω.

Οσον αφορα το Matisse ,ειχα μια πρωτη επαφη,αλλα δε ξερω τη χρηση του,πως συνδεω κουμπια με βασεις δεδομενων(αν αυτο χρειαζεται,πραγματικα,δεν εχω καταλαβει).

Αν ειναι δυσκολο να μου εξηγησεις με μπλα μπλα απο εδω,σου δινω το mail μου να μου στειλεις-αν,λεμε αν, ειναι- τις λυσεις.(τα projects δηλαδη).

Επισκέπτης
Δημοσ.

Λύσεις δεν πρόκειται να σου δώσω...

Μπορώ να σε βοηθήσω όμως..να σε κατευθύνω αν θες...

Λοιπον, γενικά το Matisse δεν ειναι τιποτα τρελό...έτσι λέγεται ο γραφικός κατασκευαστής του Netbeans...δηλαδή το κομμάτι του Netbeans που σε βοηθάει να κάνεις μέσω drag and drop το γραφικό περιβάλλον...

Για την πρώτη ερώτηση, θα πρέπει να φτιαξεις project (File -> New Project -> Java - > Java Application και επέλεξε το όνομα για το project).

Στην συνέχεια, και αφοτου δημιουργηθεί το project, θα κοιτάξεις στο αριστερό τμήμα του Netbeans (εκεί που λέει "Projects") και θα επιλεξεις το project που μόλις έφτιαξες. Θα κάνεις δεξί κλικ πάνω του και "New" -> "JFrame class...". Αυτό θα σου δημιουργήσει τον top level-container που ουσιαστικά ειναι το JFrame...

Κάνε αυτό και σου λεω την συνέχεια...

Δημοσ.

Ναι,το εχω κανει αυτο.

Μετα?

Να σου πω,το πρωτο ομως μου ειπε να μη το κανω με matisse,αλλα να γραψω εγω τον κωδικα.

Ομως ,αν στο τελος,παω στη καρτελα "source" δε θα φανει ο κωδικας κανονικα?

Επισκέπτης
Δημοσ.

ναι οκ, το δευτερο τότε...το έγραψα εκ παραδρομής...

πρόσθεσε στο JFrame ένα JTextArea και δυο κουμπιά απο κάτω...ονομασε τα καταλλήλως...

μόλις το κάνεις αυτό θα σου στείλω έτοιμη κλάση για να κάνεις την σύνδεση με την βάση δεδομένων...

εντάξει;

Δημοσ.

Ενταξει!Τα εκανα και αυτα!

Τωρα?

Να σου στειλω σε msg το mail μου?

 

Α,ηθελα να σε ρωτησω κατι,οταν κανεις setLayout πχ Borderlayout, ή flowLayout,τι κανει αυτο;

Επισκέπτης
Δημοσ.

το layout έχει να κάνει με το πως τοποθετεί το κάθε στοιχείο στο UI...

άστο στο Free Layout...

 

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

import java.sql.*;
/**
*
* @author natural_sgf
*/
public class DatabaseConnection {
   protected Connection            connection;
   protected Statement             statement;
   protected PreparedStatement     preparedStatement;
   protected ResultSet             resultSet;
   protected ResultSetMetaData     resultSetMetaData;
   protected DatabaseMetaData      databaseMetaData;
   protected String                username;
   protected String                password;
   protected String                driverClass;
   protected String                connectionString;

   public DatabaseConnection(String username, String password,
                               String driverClass, String connectionString){
       this.connection = null;
       this.statement = null;
       this.preparedStatement = null;
       this.resultSet = null;
       this.resultSetMetaData = null;
       this.databaseMetaData = null;
       this.username = username;
       this.password = password;
       this.driverClass = driverClass;
       this.connectionString = connectionString;
   }

   public void init() {
       try {
           Class.forName(this.driverClass);
           this.connection = DriverManager.getConnection(this.connectionString,
                                                           this.username, this.password);
       } catch (Exception e){
		e.printStackTrace();
           System.exit(0);
       }
       try { this.statement = this.connection.createStatement(); }
       catch (SQLException sqle) { sqle.printStackTrace(); }

   }

   public void destroy() {
       if (this.connection != null) {
           try { this.connection.close(); }
           catch (Exception e) { e.printStackTrace(); }
       }
   }

   public void closeResultSet() {
       if (this.resultSet != null) {
           try { this.resultSet.close(); }
           catch (Exception e) { e.printStackTrace(); }
       }
   }

   public void closeStatement() {
       if (this.statement != null) {
           try { this.statement.close(); }
           catch (Exception e) { e.printStackTrace(); }
       }
   }

}

Το σώζεις σαν DatabaseConnection.java και συνδεεσε έτσι

>DatabaseConnection connection = new DatabaseConnection("USERNAME",
                                       "PASSWORD",
                                       "com.mysql.jdbc.Driver", "jdbc:mysql://localhost/DATABASE_NAME");
connection.init();

 

θέτοντας παραλληλα τα στοιχεία σου...

 

Υ.Γ. ο κώδικας ειναι ενδεικτικός και μπορεί να γραφτεί διαφορετικά/ καλύτερα...εσένα σε καλύπτει όμως...

Δημοσ.

Συγνωμη,αλλα σε εχασα.

Τον πρωτο κωδικα ,Ok,τον εσωσα στο desktop ως java αρχειο.Πως τον χρησιμοποιω ομως;

Μετα τον δευτερο κωδικα-μικρο-,τι τον κανω;

Και πως συνδεομαι;

Το μονο που ειχα βρει απο μονη μου,ηταν απο την καρτελα services-Database-cretae connection,η' καπως ετσι.Αλλα ,μετα,πως συμπληρωνω τα στοιχεια αν ειναι αυτο;

 

-το ξερω οτι ειναι αργα,και σε ζαλιζω.Αν δεν απαντησεις,θα καταλαβω.:fear:

 

αυτη η κλαση που μου εστειλες,την εγραψες εσυ,η' υπαρχει καπου;;

Επισκέπτης
Δημοσ.

θα σου πω αυριο αν δεν σε βοηθήσει κάποιος άλλος...

τώρα δεν προλαβαίνω...

ο "μικρός" κώδικας ειναι για να συνδεεσε

Δημοσ.

Λοιπον,για να κανω ενα μικρο update..την 1η ασκηση βρηκα τροπο να την κανω τελικα.

Οσον αφορα αυτη που ξεκινησες να μου δειχνεις,εχω χαθει λιγο.

Συν το οτι,αυτος μας τα'δειχνε -καπως διαφορετικα,νομιζω.

Θα σου πω τι ξερω,να μου πεις πως συνεχιζω.

Γιατι,το θεμα ειναι να κατααβω τι "παιζει".

Λοιπον,αυτος μας εχει δωσει τον εξης κωδικα,που λεει οτι θα μας χρειαζεται:

 

>    public static void main(String[] args) {
       try{
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
           Connection con = DriverManager.getConnection("jdbc:odbc:db1"); // Στην θέση του db1 βάζω το όνομα της βάσης που δίνει
           Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
           ResultSet rs = stm.executeQuery("SELECT * FROM table1"); // Αντί για table1 βάζω το όνομα του πίνακα που δίνει

           while(rs.next()){
               int id = rs.getInt("id");
               String data  = rs.getString("data");
            
               System.out.println(id + ", " + data);
           }
           con.close();
       }catch(Exception e){
           e.printStackTrace();
       }
   }

 

Απο εκει και περα,δεν ξερω ουτε που τον βαζω τον συγκεκριμενο κωδικα,ουτε τι αλλο κανω!

 

Για το συγκεκριμενο παραδειγμα πχ..Φτιαχνω οπως ειπαμε με το matisse,τα δυο κουμπια,κ το text area.

Απο εκει και περα,πως συνδεω το κουμπι "Load",ετσι ωστε οποτε το παταω,να μου εμφανιζει την βαση;

Αυτο που εγραψα παραπανω,που το βαζω;Στην main class;Η' παω απο την design στην source καρτελα και πειραζω καπως τον κωδικα εκει;

Κατι αλλο που επιασα που ειπε αυτος,ειναι να κανουμε λεει,δεξι κλικ στο button που θελουμε,events-action-action Performed ,για να προσθεσουμε εναν actionListener,λεει.

 

Καποιος να μου ξεκαθαρισει το τοπιοοοο;;;;

Γραφω συντομα,και αυτο το θεμα στανταρ θα μπει!!Θα'ναι ******** να μη γραψω!!:fear:

 

 

Ααα...παρενθεση...υποτιθεται οτι τη βαση δεδομενων θα μας την εχει ετοιμη αυτος-καπου αποθηκευμενη,i guess-δε θα χρειαστει να την φτιαξουμε εμεις.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...