Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524

    [Java] Ambiente Statico e non

    Ciao! Mentre scrivo ho le mani tra i capelli per la disperazione, quindi rendetevi conto della mia situazione.

    è un problema allucinante che non riesco a risolvere:

    Ho un applicazione (quindi classe com main), in cui ho bisogno di monitorare gli eventi legati al mouse. Naturalmente viene generato un errore quando dichiaro il listener, che di fatto non è statico.

    A questo punto, premettendo la mia inesperienza in Java, vi chiedo cortesemente cosa devo fare per ritrovare la mia serenità mentale.

    Grazie infinite.

  2. #2
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    Pensavo di aver risolto dichiarando metodi diversi e ricostruendo tutto nel costruttore, ma non è così. Avendo dichiareto il JFrame in metodi no-static, non appare quando nel metodo statico richiamo il costruttore.


    che faccio? :master:

  3. #3
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    piccolo esempio di codice

    codice:
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.*;
    
    public class mousedemo implements MouseListener, MouseMotionListener {
      
      JFrame mainFrame;
      JPanel center;
      JTextField bottom;
      String testo;
      
      public void mouseDragged(MouseEvent me) {
        bottom.setText(testo+"mouseDragged");    
      }
      
      public void mouseMoved(MouseEvent me) {
        bottom.setText(testo+"mouseMoved");    
      }
      
      public void mouseClicked(MouseEvent me) {
        bottom.setText(testo+"mouseClicked");
      }
      
      public void mouseEntered(MouseEvent me) {
        bottom.setText(testo+"mouseEntered");
      }
      
      public void mouseExited(MouseEvent me) {
        bottom.setText(testo+"mouseExited");
      }
      
      public void mousePressed(MouseEvent me) {
        bottom.setText(testo+"mousePressed");
      }
      
      public void mouseReleased(MouseEvent me) {
        bottom.setText(testo+"mouseReleased");    
      }
      
      public mousedemo(String title) {
        testo = "Evento generato da: ";
        mainFrame = new JFrame(title);
        mainFrame.setSize(600, 400);
        mainFrame.getContentPane().setLayout(new BorderLayout());
        center = new JPanel();
        center.addMouseListener(this);
        center.addMouseMotionListener(this);
        bottom = new JTextField();
        mainFrame.getContentPane().add(center, BorderLayout.CENTER);
        mainFrame.getContentPane().add(bottom, BorderLayout.SOUTH);
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFrame.setDefaultLookAndFeelDecorated(true);
        mainFrame.setVisible(true);
      }
      
      public static void main(String[] args) {
        mousedemo md = new mousedemo("Prova eventi mouse");
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    Ciao Andrea! Grazie per la risposta... ho fatto come mi hai indicato, adesso viene compilato senza problemi ma, non viene visualizzato il JFrame.

    Da cosa potrebbe dipendere?

    Il programma è praticamente come da te definito. :master:

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    posta il tuo codice.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.imageio.*;



    public class ScreenControl implements MouseListener, MouseMotionListener
    {

    JFrame f;


    public void ScreenControl() throws Exception{

    f = new JFrame("Screen Control");
    f.setSize(320,400);
    Container cp = f.getContentPane();
    cp.setLayout(new FlowLayout(FlowLayout.CENTER));
    JPanel PannelloSelezione = GenerateMap();

    JPanel CampiSpecifiche = new JPanel();

    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();
    CampiSpecifiche.setLayout(gridbag);

    JLabel TitoloSpettroLabel= new JLabel("Seleziona l'area di avviso");
    CampiSpecifiche.add(TitoloSpettroLabel);
    constraints.gridx = 0;
    constraints.gridy = 0;
    constraints.insets.top = 15;
    constraints.insets.bottom = 5;
    gridbag.setConstraints(TitoloSpettroLabel, constraints);

    JPanel tr = new JPanel();
    tr.setLayout(new FlowLayout(FlowLayout.CENTER));
    CampiSpecifiche.add(PannelloSelezione);
    constraints.gridx = 0;
    constraints.gridy = 1;
    constraints.ipady = 250;
    constraints.ipadx = 280;
    constraints.insets.top = 15;
    constraints.insets.bottom = 5;
    gridbag.setConstraints(PannelloSelezione, constraints);

    cp.add(CampiSpecifiche);

    f.setVisible(true);
    }

    public void mouseClicked(MouseEvent me){}
    public void mouseEntered(MouseEvent me){}
    public void mouseExited(MouseEvent me){}
    public void mousePressed(MouseEvent me){}
    public void mouseReleased(MouseEvent me){}
    public void mouseDragged(MouseEvent me){}
    public void mouseMoved(MouseEvent me){}



    public JPanel GenerateMap() throws Exception {

    JPanel PannelloSelezione = new JPanel(){
    PannelloSelezione.addMouseListener(this);
    return(PannelloSelezione);

    }




    public static void main(String[] args) throws Exception {

    ScreenControl c = new ScreenControl();

    }

    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    usa i tag CODE la prossima volta

    codice:
    import java.awt.event.*; 
    import java.awt.*; 
    import javax.swing.*; 
    import java.awt.image.*; 
    import java.io.*; 
    import javax.imageio.*; 
    
    
    
    public class ScreenControl implements MouseListener, MouseMotionListener { 
    
      JFrame f;
    
      public ScreenControl() {
        f = new JFrame("Screen Control");
        f.setSize(320, 400);
        Container cp = f.getContentPane();
        cp.setLayout(new FlowLayout(FlowLayout.CENTER));
        JPanel PannelloSelezione = GenerateMap();
    
        JPanel CampiSpecifiche = new JPanel();
    
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints constraints = new GridBagConstraints();
        CampiSpecifiche.setLayout(gridbag);
    
        JLabel TitoloSpettroLabel = new JLabel("Seleziona l'area di avviso");
        CampiSpecifiche.add(TitoloSpettroLabel);
        constraints.gridx = 0;
        constraints.gridy = 0;
        constraints.insets.top = 15;
        constraints.insets.bottom = 5;
        gridbag.setConstraints(TitoloSpettroLabel, constraints);
    
        JPanel tr = new JPanel();
        tr.setLayout(new FlowLayout(FlowLayout.CENTER));
        CampiSpecifiche.add(PannelloSelezione);
        constraints.gridx = 0;
        constraints.gridy = 1;
        constraints.ipady = 250;
        constraints.ipadx = 280;
        constraints.insets.top = 15;
        constraints.insets.bottom = 5;
        gridbag.setConstraints(PannelloSelezione, constraints);
    
        cp.add(CampiSpecifiche);
    
        f.setVisible(true);
      }
    
      public void mouseClicked(MouseEvent me) {}
    
      public void mouseEntered(MouseEvent me) {}
    
      public void mouseExited(MouseEvent me) {}
    
      public void mousePressed(MouseEvent me) {}
    
      public void mouseReleased(MouseEvent me) {}
    
      public void mouseDragged(MouseEvent me) {}
    
      public void mouseMoved(MouseEvent me) {}
      
      public JPanel GenerateMap() { 
        JPanel PannelloSelezione = new JPanel();
        PannelloSelezione.addMouseListener(this); 
        return(PannelloSelezione);
      } 
      
      public static void main(String[] args) { 
        ScreenControl c = new ScreenControl(); 
      } 
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    Ciao ti ringrazio infinitamente!

    Ma come mai funziona solo togliendo il void dal costruttore?

    PS: Sei gentilissimo, grazie ancora.

  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    perke il costruttore non deve avere un tipo di ritorno come i metodi

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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 © 2024 vBulletin Solutions, Inc. All rights reserved.