Domanda Risolto Aggiornamento GUI a runtime

Stato
Discussione chiusa ad ulteriori risposte.

0xbro

Super Moderatore
24 Febbraio 2017
4,465
179
3,767
1,825
Ultima modifica:
Ciao a tutti, siccome sono un po' arrugginito con la programmazione Java avrei bisogno di una mano per capire se ciò che sto portando avanti è giusto.

Il programma di per sè è un autoclicker e per ora l'ho strutturato nel seguente modo:
Classe AutoClicker --> presenta la GUI con il menù dove scegliere le varie opzioni
Classe Summary --> presenta le informazioni a runtime dell'attività in corso (durata d'esecuzione, click, tempo rimanente ecc)
Classe Bot --> è il bot, quello che clicca qua e là e fa cose da bot

La mia neccessità è quella di capire se sto facendo nel modo corretto l'update della GUI "Summary", inoltre vorrei capire come far intercettare alla classe Bot la pressione di un bottone nella GUI "Summary"

Il codice (solo le funzioni principali) finora è il seguente:
Java:
// Classe AutoClicker (GUI principale)

private void btnStartActionPerformed(java.awt.event.ActionEvent evt) { 
        // Pressione del Bottone "Start" per avviare l'attività del bot
  
        Bot bot = new Bot(
                radioMode,
                radioSniping,
                (Integer)spnrPrice.getValue(),
                (Integer)spnrLimit.getValue(),
                sliderTimeout.getValue(),
                sliderTimeout2.getValue(),
                checkboxBreak.isSelected(),
                timer,
                checkboxTurnOff.isSelected()); // create Bot
      
        // Open Summary GUI
        Summary summaryVid = new Summary(bot);
        summaryVid.setVisible(true);
      
        // Start the Bot
        bot.startWorking();
      
    }

Java:
// Classe Summary (GUI secondaria)

public Summary(Bot bot){
       // Uso l'oggetto bot per aggiornare la GUI

        initComponents();
        // Update Mode field
        if(bot.getMode() == 1){
            txtfldMode.setText("Mass Bidding");
        }else{
            txtfldMode.setText("Sniping");
        }
        // Update Serches left field
        if(bot.getLimit() > 0){
            txtfldSearches.setText(String.valueOf(bot.getLimit()));
        }else{
            txtfldSearches.setText("-");
        }
        // Update Time left field
        if(bot.getTimer() > 0){
            frmtxtTime.setText(String.valueOf(bot.getLimit()));
        }else{
            frmtxtTime.setText("-");
        }
        // Update Price field
        txtfldPrice.setText(String.valueOf(bot.getPrice()));
    }

private void btnStopActionPerformed(java.awt.event.ActionEvent evt) {
        // Bottone "STOP"
        // non ho la più pallida idea per ora di cosa fare :')
       // In questa classe non ho nessuno oggetto bot istanziato... come posso fare per dialogare con l'oggetto bot istanziato nella classe "AutoClicker"?
      
       
      
}

Java:
// Classe Bot
public int startWorking(){
        /*
        PSEUDO CODICE
      
        Finchè non chiudo la videata2 o premo il bottone "exit"
            Clicca qui
            Clicca lì
            Clicca su
            Clicca giù
      
            Aggiorna videata2
            txtfield2.setValue(12)
            ...
        fine ciclo
        azzera tutto
        */
      
      
        return 0;
    }

Forse mi conviene passare una serie di valori a "Summary" e poi istanziare lì dentro il bot?
Grazie a chi mi aiuterà :')
 
Ho poca conoscenza di Java quindi posso parlare solo in linea teorica pensando a come farei con altri linguaggi OOP.
Quando costruisci Summary dovresti conservare l'istanza di Bot che passi come argomento in un membro della classe per poterla usare da altri metodi dopo che il costruttore avra' finito.

Java:
public Summary(Bot bot){
    this._bot = bot;
    // ....
 
  • Mi piace
Reazioni: 0xbro
Alla fine ho fatto come suggerito sopra, mi sono salvato l'instanza dell'oggetto in modo da poterlo richiamare quando necessario. Forse esistono modi più puliti ma alla fine funziona quindi... chiudo! :)
 
Stato
Discussione chiusa ad ulteriori risposte.