Buongiorno a tutti è la prima volto che posto qui, innanzitutto vorrei augurarvi buon natale e buone feste e soprattutto farvi i complimenti per questo sito fantastico.
Vi spiego il mio problema:
ho scritto le seguenti classi:
Classe di ascoltatori per interfaccia grafica.
package Ascoltatori;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import Interfaccia.Accesso;
import javax.swing.JLabel;
public class AscoltatoriAccesso implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
JLabel marco = new JLabel("Marco");
panel.add(marco);
}
}
Classe dell'interfaccia grafica:
package Interfaccia;
import java.awt.Dimension;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import Ascoltatori.AscoltatoriAccesso;
public class Accesso extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public JPanel panel;
private JLabel benvenuto;
private JButton pulizie;
private JButton segretario;
private JButton professore;
private JButton studente;
private AscoltatoriAccesso ascoltatore;
public Accesso(){
JFrame accesso = new JFrame("Accesso");
accesso.setDefaultCloseOperation(EXIT_ON_CLOSE);
accesso.setVisible(true);
accesso.setSize(new Dimension(500,400));
panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
studente = new JButton("Studenti");
professore = new JButton("Professore");
segretario = new JButton("Addetto Segreteria");
pulizie = new JButton("Addetto Manutenzione");
benvenuto = new JLabel("Benvenuto, seleziona l'opzione adatta alla tua utenza");
studente.setAlignmentX(CENTER_ALIGNMENT);
professore.setAlignmentX(CENTER_ALIGNMENT);
segretario.setAlignmentX(CENTER_ALIGNMENT);
pulizie.setAlignmentX(CENTER_ALIGNMENT);
benvenuto.setAlignmentX(CENTER_ALIGNMENT);
studente.addActionListener(ascoltatore);
panel.add(benvenuto);
panel.add(studente);
panel.add(professore);
panel.add(segretario);
panel.add(pulizie);
accesso.add(panel);
}
}
Classe main:
package Main;
import Interfaccia.Accesso;
public class Avvio {
private static Accesso finestra;
/**
* @param args
*/
public static void main(String[] args) {
finestra = new Accesso();
}
}
Adesso il problema è questo, premetto che uso eclipse per scrivere codice e compilare, nella classe degli ascoltatori alla voce panel mi da errore accanto dicendomi di crearne uno in locale, ma io voglio che modifichi il panel della classe Accesso e non un altro panel, che avendolo dichiarato public dovrebbe essere visto o sbaglio dalla classe degli ascoltatori.
Potreste aiutarmi a capire dove sbaglio? ...