Newsgroup: it.comp.java
Titolo: Architettura gui e gestione dei listener su panel diversi

Ciao, Stò creando una gui in swing così strutturata :
Ho un JTabbedPane (JTabbedPaneTelemetrie) in cui ogni tab contiene un
pannello(JPanelTelemetria)
avente al suo interno un pannello(JPanelRadios) sulla sinistra con dei
JRadioButton mentre sulla destra c'è un pannello (JPanelGrafico) con
un grafico selezionabile cliccando sul radiobutton corrispondente.
Su questa architettura ho le seguenti domande :
1) Dove metto il listener per il RadioButtonGroup ?
2) Se lo metto dentro JPanelRadios come faccio ad avere accesso a
JPanelGrafico per cambiarne il grafico ?
Consigli ? Grazie
Antonio
www.etantonio.it


io lo metterei nel JPanelTelemetria.
Ciao Jack

Questo è più o meno il mio codice, sapresti dirmi come dovrei
cambiarlo per mettere il listener nel JPanelTelemetria ?
Grazie Antonio
www.etantonio.it
package it.imt.edusat.gui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
/** @author A.D'Ottavio featuring John B. Matthews */
public class JTabbedTest {
    public static void main(String[] args) {
         EventQueue.invokeLater(new Runnable() {
             public void run() {
                 (new JTabbedTest()).create();
             }
         });
    }
    private void create() {
        JTabbedPane jTabbedPaneTelemetrie = new JTabbedPane();
        jTabbedPaneTelemetrie.addTab("One", new JPanelTelemetria());
        jTabbedPaneTelemetrie.addTab("Two", new JPanelTelemetria());
        jTabbedPaneTelemetrie.addTab("Three", new JPanelTelemetria
());
        JFrame f = new JFrame("JTabbedPaneTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(jTabbedPaneTelemetrie);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }
}
class JPanelTelemetria extends JPanel {
    public JPanelTelemetria() {
        this.setLayout(new BorderLayout());
        this.add(new JPanelGrafico(), BorderLayout.CENTER);
        this.add(new JPanelRadios(), BorderLayout.WEST);
    }
}
class JPanelRadios extends JPanel {
    private static final Random random = new Random();
    public JPanelRadios() {
        JButton change = new JButton("Change");
        add(change);
        change.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                view.setBackground(new Color(random.nextInt()));
            }
        });
    }
}
class JPanelGrafico extends JPanel {
    private static final Random random = new Random();
    public JPanelGrafico() {
        JPanel view = new JPanel();
        view.setPreferredSize(new Dimension(100, 100));
        view.setBackground(new Color(random.nextInt()));
    }
}

 }
-- 
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'