2015-08-19 1 views
-2

J'ai fait une interface graphique en utilisant le constructeur de l'interface graphique NetBeans et ça a l'air génial! Cependant, je n'ai aucune idée de la façon de mettre en œuvre le code pour modifier les valeurs à l'intérieur de l'interface graphique.Java -Comment mettre en œuvre le code dans l'interface graphique créé dans Netbeans gui builder?

Mon programme se connecte à une base de données et extrait des informations telles que le sexe, le numéro de chambre, le numéro de lit, le nom et la source de référence pour chaque patient individuel. Le but de l'interface graphique est de représenter toutes les modifications apportées à ces informations de temps en temps, donc je veux qu'il se synchronise automatiquement avec la base de données toutes les 60 secondes ou plus. Je peux écrire le code pour la synchronisation de base de données et j'ai déjà fait l'interface graphique.

enter image description here Ma question est de savoir comment mettre à jour les informations affichées dans l'interface graphique de NetBeans?

public class ConnectMSSQLServer { 

static int bedCount; 

public static int getBedCount(){ 


    return bedCount; 

} 

public void setBedCount(int number){ 
    bedCount = number; 

} 
public void dbConnect(String db_connect_string, String db_userid, String db_password) { 
    try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password); 
     System.out.println("connected"); 
     Statement statement = conn.createStatement(); 
     String queryString = "select f2 from beds.dbo.Sheet1$"; 
     String queryString1 = "select f3 from beds.dbo.Sheet1$"; 
     String queryString2 = "select f4 from beds.dbo.Sheet1$"; 
     String queryString3 = "select f5 from beds.dbo.Sheet1$"; 
     String queryString4 = "select f6 from beds.dbo.Sheet1$"; 
     String queryString5 = "select f7 from beds.dbo.Sheet1$"; 
     String queryString6 = "select f8 from beds.dbo.Sheet1$"; 
     String queryString7 = "select f9 from beds.dbo.Sheet1$"; 
     String queryString8 = "select f10 from beds.dbo.Sheet1$"; 
     String queryString9 = "select f11 from beds.dbo.Sheet1$"; 
     String queryString10 = "select f12 from beds.dbo.Sheet1$"; 

     List<String> locationList = new ArrayList<String>(); 
     List<String> patientList = new ArrayList<String>(); 
     List<String> refferallList = new ArrayList<String>(); 
     List<String> DateList = new ArrayList<String>(); 
     // List<String> locationList = new ArrayList<String>(); 
     // List<String> locationList = new ArrayList<String>(); 
     // List<String> locationList = new ArrayList<String>(); 
     ResultSet rs = statement.executeQuery(queryString); 

     while (rs.next()) { 

      locationList.add(rs.getString(1)); 
      locationList.removeAll(Collections.singleton(null)); 

     } 
     ResultSet rs1 = statement.executeQuery(queryString1); 

     while (rs1.next()) { 

      patientList.add(rs1.getString(1)); 
      patientList.removeAll(Collections.singleton(null)); 

     } 

     Set<String> uniqueLocationList = new HashSet<String>(locationList); 
     System.out.println(uniqueLocationList); 
     setBedCount(uniqueLocationList.size()); 
     Set<String> uniquePatientList = new HashSet<String>(patientList); 
     System.out.println(uniquePatientList); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

public static void main(String[] args) { 
    ConnectMSSQLServer connServer = new ConnectMSSQLServer(); 
    connServer.dbConnect("jdbc:sqlserver://******", "***", "********"); 
} 

}

Donc, fondamentalement, je veux écrire du code dans l'exemple à condition que les données à l'intérieur ajoute l'interface graphique. Comme bed1A.setIcon (emptyIcon); quelque chose comme ça, mais je ne sais pas comment changer les valeurs de l'interface graphique du code qui existe en dehors de celui-ci. Conserver une classe de contrôleur, l'application, le boss.

+1

Votre question semble un peu large. Pouvez-vous être plus précis - qu'est-ce que vous voulez changer en particulier? Quels composants de l'interface graphique sont impliqués? Pouvez-vous montrer le code pertinent? –

+1

Afficher le code pertinent, alors seulement nous pouvons aider. Aucun seigneur de puissance magique ne m'a accordé de voir le code dans l'image et de vous aider. –

+0

Je voulais que ma question soit large, parce que je cherche à changer presque tout ce qui est montré dans l'interface graphique. Je ne sais pas comment implémenter le code généré par netbeans, ses plus de 6000 lignes et je ne sais pas si je devrais juste faire une nouvelle classe qui étend cette classe d'interface graphique, puis modifier les paramètres ou éditer le code dans le Classe GUI. Un exemple serait que si la valeur de la base de données pour la pièce 1 devient vide alors je veux retirer Christine de la pièce et changer la couleur de ce lit en gris. – Andigx

Répondre

3
  • Conserver une classe DataModel, champ du contrôleur, pour toutes les données, chargées à partir de la base de données utilisée pour créer l'interface graphique; fait par le contrôleur.
  • Et puis il y a la vue, votre JFrame, un champ du contrôleur.

Maintenant, dans le générateur GUI, vous ne voulez pas vous répéter (principe DRY). Tous ces éléments de la pièce doivent être List des pièces. Après avoir utilisé le générateur GUI pour ajouter un élément, vous pouvez adapter le code pour les tableaux/listes.

Le contrôleur peut définir les choses dans le JFrame: vous ajoutez à la JFrame: addPatient(int room, int bed, String name) et peut récupérer le composant à partir d'une liste et d'utiliser Ctrl-Space à élire setText("Jane") à tout. Créez des classes de données comme Room, Bed, Patient. (Utilisez le contrôle de version.)

+0

Merci d'avoir clarifié cela, mais comment utiliser la classe gui builder à l'intérieur de mon contrôleur? J'ai essayé de l'étendre et de l'implémenter mais rien ne semble élever le gui quand j'appelle new gui(); dans ma méthode principale. – Andigx

+0

En passant de la vue Conception à la vue Source, vous pouvez développer les parties de code générées, voir les champs déclarés: jPanel1, jTextField4 etc. Expérimentez dans un projet séparé pour faire des choses comme 'jTextField.setBackground (Color.RED)' etcetera. –