Vai al contenuto


Foto

[JAVA] Richieste di aiuto Java


Questa discussione e' stata archiviata Questo significa che non e' possibile rispondere
201 risposte a questa discussione

#201 rally

rally

    Schiavo

  • Membri
  • StellettaStellettaStelletta
  • 165 Messaggi:

Inviato 31 ottobre 2012 - 16:22

...un main program che implementa un egocentrico AllyEventListener :

public class MainProgram implements AllyEventListener {

private MainLayout mainLayout;
public static void main(String args[]){

new MainProgram();

}

public MainProgram(){

this.mainLayout = new MainLayout();
this.mainLayout.setListeners(this);
this.mainLayout.showLayoutSuperScemo();

}

public void performedEvent(AllyEvent e) {

System.out.println("ho ricevuto un evento ! " +e.getEventName());

if(e.getEventName().equals("vedi"))
{
this.mainLayout.hideLayoutSuperScemo();
this.mainLayout.showLayoutSuperScemo2();
}
if(e.getEventName().equals("nascondi"))
{
this.mainLayout.hideLayoutSuperScemo2();
this.mainLayout.showLayoutSuperScemo();
}
}
}

...un mainLayout che visualizza e nasconde pannelli e passa loro l'allyEventListener per l'ascolto degli eventi :

public class MainLayout {
private LayoutSuperScemo layoutSuperScemo;
private LayoutSuperScemo2 layoutSuperScemo2;
private JFrame mainFrame;
private AllyEventListener listeners;
public MainLayout(){
try {
mainFrame = new JFrame();
mainFrame.setLayout(null);
mainFrame.setDefaultCloseOperation(2);
mainFrame.setSize(800, 600);
mainFrame.setBounds(0, 0, 800, 600);
mainFrame.setUndecorated(true);
mainFrame.getContentPane().setBackground(Color.white);
mainFrame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
public void showLayoutSuperScemo(){
if(layoutSuperScemo==null)
{
layoutSuperScemo = new LayoutSuperScemo();
layoutSuperScemo.addAllyEventListener(listeners);
mainFrame.add(layoutSuperScemo);
}
layoutSuperScemo.setVisible(true);
mainFrame.repaint();
}
public void hideLayoutSuperScemo(){
layoutSuperScemo.setVisible(false);
mainFrame.repaint();
}
public void showLayoutSuperScemo2(){
if(layoutSuperScemo2==null)
{
layoutSuperScemo2 = new LayoutSuperScemo2();
layoutSuperScemo2.addAllyEventListener(listeners);
mainFrame.add(layoutSuperScemo2);
}
layoutSuperScemo2.setVisible(true);
mainFrame.repaint();
}
public void hideLayoutSuperScemo2(){
layoutSuperScemo2.setVisible(false);
mainFrame.repaint();
}
public AllyEventListener getListeners() {
return listeners;
}
public void setListeners(AllyEventListener listeners) {
this.listeners = listeners;
}
}

...l'allyEventListener :

public interface AllyEventListener extends EventListener{
public void performedEvent(AllyEvent e);

}

...l'oggetto palleggiato da chi scatena l'evento all'ascoltatore da ampliare a seconda delle esigenze:

public class AllyEvent extends EventObject {
private static final long serialVersionUID = 1L;
String eventName;
public AllyEvent(Object source,String eventName) {
super(source);
this.eventName = eventName;
}
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
}

...i due layout con il listener e il lancio dell'evento legato al tasto :

public class LayoutSuperScemo2 extends JPanel{

private JButton invia;
private JLabel etichetta;
private JTextField campo;
private AllyEventListener listeners;

public static void main(String args[]){

JFrame mainFrame = new JFrame();
mainFrame.setLayout(null);
mainFrame.setDefaultCloseOperation(2);
mainFrame.setSize(300, 200);
LayoutSuperScemo2 layout = new LayoutSuperScemo2();
layout.setOpaque(false);
layout.setVisible(true);
mainFrame.add(layout);
mainFrame.setVisible(true);


}
public LayoutSuperScemo2(){
setLayout(null);
setBounds(0, 0, 600, 800);
etichetta = new JLabel("etichetta");
etichetta.setBounds(410, 210, 90, 25);
add(etichetta);

campo = new JTextField("campo");
campo.setBounds(400, 210, 90, 25);
add(campo);


invia = new JButton("invia");
invia.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
inviaButtonEvent(evt);
}
});
invia.setBounds(500, 540, 90, 25);
add(invia);
repaint();
}

public void addAllyEventListener(AllyEventListener listener) {
this.listeners = listener;
}

private void launchEvent(String eventName) {
if(this.listeners!=null)
this.listeners.performedEvent(new AllyEvent(this,eventName));
}
private void inviaButtonEvent(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.launchEvent("nascondi");
}
}

public class LayoutSuperScemo extends JPanel{

private JButton invia;
private JLabel etichetta;
private JTextField campo;
private AllyEventListener listeners;

public static void main(String args[]){

JFrame mainFrame = new JFrame();
mainFrame.setLayout(null);
mainFrame.setDefaultCloseOperation(2);
mainFrame.setSize(300, 200);
LayoutSuperScemo layout = new LayoutSuperScemo();
layout.setOpaque(false);
layout.setVisible(true);
mainFrame.add(layout);
mainFrame.setVisible(true);


}
public LayoutSuperScemo(){
setLayout(null);
setBounds(0, 0, 300, 200);
etichetta = new JLabel("etichetta");
etichetta.setBounds(10, 10, 90, 25);
add(etichetta);

campo = new JTextField("campo");
campo.setBounds(200, 10, 90, 25);
add(campo);


invia = new JButton("invia");
invia.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
inviaButtonEvent(evt);
}
});
invia.setBounds(200, 140, 90, 25);
add(invia);
repaint();
}

public void addAllyEventListener(AllyEventListener listener) {
this.listeners = listener;
}

private void launchEvent(String eventName) {
if(this.listeners!=null)
this.listeners.performedEvent(new AllyEvent(this,eventName));
}
private void inviaButtonEvent(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.launchEvent("vedi");
}
}

... :poker: ...


...gran bel pezzo di codice...

#202 toyo

toyo

    sono triste

  • Donatori di sperma
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 43.978 Messaggi:

Inviato 31 ottobre 2012 - 17:23

:asd:

FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
 

Mai piĆ¹ giorni felici