Author Topic: Disegnare output su JPanel  (Read 2131 times)

Offline Gas75

Disegnare output su JPanel
« on: February 16, 2017, 12:49:43 PM »
Salve.
Sto continuando a lavorare sulla GUI dopo avere risolto i problemi con la textarea, questione trattata nell'altra discussione.
Lo step successivo, nonché finale di questa mia esercitazione, è visualizzare su un JPanel dedicato, dei tre JPanel che compongono il mio JTabbedPane, i risultati come punti di coordinate pari alle coppie di soluzioni che ottengo in output.
Prima di affrontare il discorso di come passare gli output che scaturiscono dal ciclo for che è la chiave dell'intera parte di calcolo, sto tentando di visualizzare un semplice cerchio (ovale con assi uguali) di posizioni e dimensioni fisse.

Seguendo un tutorial sono riuscito a creare, su un progetto ex novo, una classe Java che visualizza nel suo unico JPanel il mio cerchio (tra l'altro pieno) e anche un testo...
Nel mio progetto qualcosa non sta funzionando in tal senso, a cominciare dalla scomparsa della textarea sin dalla fase di input, per poi "perdermi" nell'indirizzare il disegno del cerchio nel JPanel apposito visto che nel mio caso non ce n'è uno ma ben tre. :-\

Adattando la classe di prova al mio progetto, ho innanzitutto definito
Code: You are not allowed to view links. Register or Login
    private final Disegna A;
    private final Container c;
Poi ho aggiunto delle righe al metodo
Code: You are not allowed to view links. Register or Login
    public InterfacciaRadiciNdiC() {
        initComponents(); // unica istruzione preesistente
        A = new Disegna();
        c = getContentPane();
        c.add(A);
    }
Quindi ho integrato il main
Code: You are not allowed to view links. Register or Login
java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new InterfacciaRadiciNdiC().setVisible(true);
                InterfacciaRadiciNdiC p = new InterfacciaRadiciNdiC(); // riga aggiunta, come nella classe "di prova"
            }
        });
Infine ho definito la classe Disegna
Code: You are not allowed to view links. Register or Login
class Disegna extends JPanel {
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.fillOval(20,20,10,10);
    }
}
Tutto ciò non produce alcun errore, ma nemmeno alcun risultato ;D ehm ehm...
Vorrei capire un po' dove sbaglio, se genero qualche conflitto e come dirigere l'output grafico nell'apposito JPanel senza che l'output testuale sparisca con tutta la textarea.
Ci sono 10 tipi di persone: chi conosce il codice binario e chi no.
 

Offline lynx

Re:Disegnare output su JPanel
« Reply #1 on: February 16, 2017, 06:56:45 PM »
Io invece mi chiedo, è possibile che Java non ha un debugger? ed è possibile che non restituisca nessun errore e nessun output?
Se non intuisci il problema, come fai a trovare la soluzione?
A naso ti darei mille consigli sbagliati, tipo hai controllato bene la sintassi?
Le librerie sono compatibili con la tua versione?
Prova un po a spegne e riaccende..  ;D
 

Offline Gas75

Re:Disegnare output su JPanel
« Reply #2 on: February 16, 2017, 07:19:09 PM »
Il debugger ci sta, l'ho usato una sola volta in precedenza e manco c'erano errori. ::)

Errori non ne restituisce né output, immagino perché la textarea è finita da qualche parte della GUI come l'altra volta, ma se non visualizzo errori non so dove andare a parare: quello che vedo è che la GUI si genera senza textarea nonostante sia correttamente definita, visto che era corretta prima di aggiungere il codice (altrove funzionante) per stampare un semplice cerchio...

La sintassi con NetBeans è un casino: mi segnala errori quando sto scrivendo solo perché non ho ancora messo ";" a fine riga, poi se ci sono errori veri, macroscopici, per lui se non usato un metodo non dichiarato o usato impropriamente una stringa come un numero, tace.

Le librerie sembrano tutte "tranquille".
Ci sono 10 tipi di persone: chi conosce il codice binario e chi no.
 

Offline lynx

Re:Disegnare output su JPanel
« Reply #3 on: February 16, 2017, 07:40:13 PM »
funzionante altrove? ma sul tuo enviroment l'hai provato? Prova il "cerchio" sulla tua macchina.
Sono domande banali, ma brancolo nel buio.
Può anche darsi che ci sia un altro linguaggio o versione impostato (ne dubito) ma un errore dovrebbe dartelo.
Se è vero che il debugger fa così schifo vedi se gli altri ne usano uno più valido.
 

Offline Gas75

Re:Disegnare output su JPanel
« Reply #4 on: February 16, 2017, 07:43:43 PM »
Non ho detto che il debugger fa schifo...
L'ho usato sullo stesso pc di stavolta, ma per un altro progetto, tra l'altro molto semplice...

---

Al momento ho notato solo che commentando questa istruzione
Code: You are not allowed to view links. Register or Login
InterfacciaRadiciNdiC p = new InterfacciaRadiciNdiC();il programma gira normalmente per quanto riguarda l'output su textarea.
« Last Edit: February 16, 2017, 07:49:34 PM by Gas75 »
Ci sono 10 tipi di persone: chi conosce il codice binario e chi no.
 

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40