Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JAVA] Utilizzo metodo validate() soluzione problema

    Ciao.

    Ho un piccolo problema che vorrei risolvere.

    In pratica ho un JApplet (come da codice).

    Non riesco a far visualizzare nulla e in più credo che io debba usare il metodo validate() per validare i componenti aggiunti all'interfaccia, ma istanziati al di fuori dell'INIT

    Spero possiate aiutarmi.

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.applet.*;
    class ValidateMethod extends JApplet {
        private JButton btn = new JButton("Inserimento");
        private JPanel jPanel = new JPanel();
        
        public void init(){
            BtnListener btnAsc = new BtnListener();
            btn.addActionListener(btnAsc);
            Container cnt = getContentPane();
            cnt.setLayout(new BorderLayout());
            cnt.add(btn, "South");
            jPanel.setLayout(new FlowLayout());
            cnt.add(jPanel, "Center");
        }
        class BtnListener implements ActionListener {
            public void actionPerformed(ActionEvent e){
                jPanel.add(new JLabel("Pulsante premuto"));
            }
        }
    }
    Ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Utilizzo metodo validate() soluzione problema

    Originariamente inviato da dario.cescon
    Non riesco a far visualizzare nulla e in più credo che io debba usare il metodo validate() per validare i componenti aggiunti all'interfaccia, ma istanziati al di fuori dell'INIT
    Per prima cosa, la classe deve essere 'public'. Come seconda cosa, quando aggiungi una nuova label a seguito dell'evento basta invocare un validate() sul tuo jPanel.


    P.S. Non usare costanti "South", "Center" ecc.. usa le costanti dichiarate in BorderLayout!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Allora...1x10^6 grazie per aver risposto e avermi dato la spiegazione!!!

    In due parole mi potresti dire perchè deve essere public? (ho provato il pulsante viene visualizzato)

    E come mai dovrei utilizzare BorderLayout.NORTH e compari al posto di add(obj, "North");

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da dario.cescon
    In due parole mi potresti dire perchè deve essere public?
    Perché lo richiede così il container della applet. Altrimenti non la trova.

    Originariamente inviato da dario.cescon
    E come mai dovrei utilizzare BorderLayout.NORTH e compari al posto di add(obj, "North");
    BorderLayout.NORTH è poi nient'altro che una costante String con valore "North" appunto. Ma se scrivi tu la stringa puoi rischiare di sbagliarla es. "north" invece di "North" che non solo è sbagliato ma a runtime ti becchi pure una bella eccezione!

    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: north

    Se sbagli a scrivere la costante es. BorderLayout.NOTH ti becchi un errore di compilazione ... te ne accorgi subito!

    In generale, se ci sono costanti definite in classi .... usale!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Beh..direi che c'è la morale...

    Ho capito che se ho problemi è molto meglio chiedere magari un aiuto ogni tanto, che invece perdere 2 ore per non concludere nulla.

    Sei un grande!

    Grazie.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Suggerisco la lettura del Regolamento interno per quanto concerne il posting del codice e l'utilizzo degli appositi tag (punto 6).


    Ho sistemato io il primo post.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.