[JAVA] metodo validate() soluzione al mio problema

ironmac

Utente Attivo
245
3
CPU
P4 2800 HT
Scheda Madre
Intel, ma non ricordo che cacchio...
HDD
Seagate 320 GB
RAM
2 GB Dual Channel
GPU
Radeon X1600 Pro
Audio
Integrated
Monitor
Quel che lè
PSU
A caso
Case
Il tavolo
OS
Ubuntu e Windows
[JAVA][risolto] metodo validate() soluzione al mio 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
 
Ultima modifica:

appena_iscritto

Utente Attivo
505
2
CPU
t7600
HDD
200GB
RAM
2GB
GPU
Nvidia
OS
Vista Hp
dopo l' ultimo add dovresti aggiungere una chiamata al metodo revalidate() di swing. Eventualmente, per sopperire a comportamente spuri ed imprevisti puoi chiamare anche repaint, anche se non è propriamente necessario, almeno che il cambiamento rivalidato vada a mutare anche il contesto, con un ridimensionamento ad esempio.
 

ironmac

Utente Attivo
245
3
CPU
P4 2800 HT
Scheda Madre
Intel, ma non ricordo che cacchio...
HDD
Seagate 320 GB
RAM
2 GB Dual Channel
GPU
Radeon X1600 Pro
Audio
Integrated
Monitor
Quel che lè
PSU
A caso
Case
Il tavolo
OS
Ubuntu e Windows
Ho scoperto l'arcano.

La classe deve essere public e poi come dicevi te, bisogna chiamare jPanel.revalidate() subito dopo
jPanel.add(new JLabel("Pulsante premuto"));

Poi se mi dici che è meglio anche il repaint(), lo metto.

Grazie per la risposta.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!