2010-05-16 3 views
0

J'ai un projet Java où je dois me connecter à une base de données et créer des boutons (suivant, nouveau, sauvegarder, supprimer, précédent) pour naviguer dans le contenu de la base de données champs et étiquettes pour les informations spécifiques.Java: Aide à la construction d'une méthode fillTextFields()

Je vais utiliser le code ci-dessous comme un exemple (chaque bouton est mis en place très similaire) ... Je l'ai comme suit:

JButton jbtnNext = new JButton("Next ->"); 
jbtnNext.addActionListener(this); 
if (e.getSource() == jbtnNext) jbtnNext_Click(); 
private void jbtnNext_Click() { 
    JOptionPane.showMessageDialog(null, "Next" ,"Button Pressed", 
     JOptionPane.INFORMATION_MESSAGE); 

    try { 
     if (rset.next()) { 
      fillTextFields(true); 
     }else{ 
      //Display result in a dialog box 
      JOptionPane.showMessageDialog(null, "Not found"); 
    } 
} 
    catch (SQLException ex) { 
     ex.printStackTrace(); 
    } 

} 

Le professeur a donné les grandes lignes de la logique suivante pour construire la fillTextFields() méthode:

  1. Construct la méthode de fournir du code réutilisable qui remplirait les JTextFields sur l'interface graphique avec des valeurs appropriées enregistrement en cours de la base de données (lorsque « précédent ou « boutons Suivant » sont pressés) ou des valeurs vides (lorsque le nouveau bouton est enfoncé).

  2. Pour déterminer si l'enregistrement en cours devait fournir des valeurs (suivant et précédent) ou si la valeur devait être vide (nouveau bouton), passez un argument booléen dans la méthode. Si les données de l'enregistrement en cours devaient être utilisées comme valeurs de remplissage, passez true pour le code de bouton précédent et suivant après avoir déplacé le pointeur d'enregistrement. Si le nouveau bouton a été enfoncé et que vous souhaitez remplir avec des valeurs vides, passez false à la méthode.

  3. À l'intérieur de la méthode, utilisez une expression conditionnelle pour évaluer la variable booléenne. Si la valeur est true, la méthode resultet get ----() appropriée est utilisée pour remplir le JTextFields. Si faux, remplissez-les avec "".

  4. La méthode .setText() de JTextField est utilisée pour remplir chaque JTextField.

  5. Assurez-vous que la méthode fillTextFields renvoie l'exception appropriée.

Je comprends et ont les méthodes de bouton précédent et suivant le passage vrai, alors que la nouvelle méthode de bouton passe faux, mais je ne comprends pas tout à fait comment configurer correctement ou comment la méthode fillTextFields() à « jeter la exception appropriée "... Toute aide serait vraiment appréciée, merci!

Répondre

1

La méthode fillTextFields, devrait, comme son nom l'indique, remplir les champs de texte avec les données que vous obtenez de la base de données. Je suppose que le rset est une variable globale, vous devriez donc pouvoir y accéder à partir d'autres méthodes au sein de la même classe.

Vous pouvez consulter ce tutorial afin de vous faire une idée de l'utilisation des champs de texte en Java.

Dans la méthode fillTextFields, vous devez d'abord vérifier si le booléen qui a été transmis est true ou false, si elle est true, vous extraire les données du jeu de résultats et d'utiliser le .setText(textToPrint) pour afficher les données que vous avez récupéré de la base de données.

Pour récupérer les données, vous pouvez le faire comme suit:

rset.getString(1) 

Les rendements supérieurs à la valeur stockée dans la 1ère colonne de la base de données en tant que chaîne. Vous pouvez lire le JavaDoc pour voir comment retourner différents types.

En ce qui concerne l'exception à lancer, vous pouvez vérifier le lien vers JavaDoc fourni pour voir quelles méthodes lancent quelles exceptions.

1

Je ne comprends pas tout à fait comment mettre en place la méthode fillTextFields() correctement ou comment « jeter l'exception appropriée » ..

méthodes JDBC peuvent jeter SQLException lorsque l'interaction DB échoue. Le fillTextFields() ne devrait pas l'attraper, mais le laisser passer. Il sera traité dans le catch (SQLException e) que vous avez déjà là dans le code posté. Vous devez ajouter une clause throws avec cette exception à la méthode fillTextFields(). Par exemple.

public void fillTextFields(boolean blank) throws SQLException { 
    Connection connection = null; 
    // ... 

    try { 
     connection = DriverManager.getConnection(url, username, password); 
     // ... 
    } finally { 
     if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {} 
     // ... 
    } 
} 

Voir aussi la Sun tutorial on Exceptions et la Sun JDBC tutorial.

Questions connexes