Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    148

    problema progamma

    volevo creare un applicazione che cliccando sulla finestra della stessa applicazione modifichi il testo di un label con le coordinate de puntatore del mouse.però compilando il sorgente non succede nulla. come posso risolvere?

    ecco il codice:
    codice:
    import java.awt.Window;
    import java.awt.event.InputEvent;
    import java.awt.AWTException;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    class finestra extends JFrame implements MouseListener{
        int x,y;
        Label la=new Label("clicca sullo schermo!");
    
        
               
          
            public finestra()
            {
                setTitle("programma");
                setLocation(300,100);
                setSize(600,600);
                add(la);
         
                addMouseListener(this);
                pack();
                show();
                
            }
            
            
        
            public void mousePressed(MouseEvent E)
            {
                x=E.getX();
                y=E.getY();
                la.setText("x="+x+"y="+y);
                repaint();
            }
            public void mouseReleased(MouseEvent E){}
             public void mouseEntered(MouseEvent E){}
            public void mouseExited(MouseEvent E){}
            public void mouseClicked(MouseEvent E){}
            public static void main(String[] Args){
                new finestra();
            
                
            }
        }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: problema progamma

    Originariamente inviato da killerbomb
    però compilando il sorgente non succede nulla. come posso risolvere?
    Ehm... Dopo aver compilato lo mandi in esecuzione? A me funziona correttamente. Certo è da rivedere, non è corretto mescolare componenti AWT (Label) e Swing (JFrame) ed il metodo show() è deprecato (al suo posto si deve usare setVisible(true)). Il pack() come l'avevi messo tu è abbastanza inutile, come il repaint() :master:

    codice:
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    public class Finestra extends JFrame implements MouseListener {
        private int x, y;
        private JLabel la = new JLabel("clicca sullo schermo!", JLabel.CENTER);
    
        public Finestra() {
            setTitle("Programma");
            setLocation(300, 100);
            setSize(600, 600);
            add(la);
    
            addMouseListener(this);
            setVisible(true);
        }
    
        public void mousePressed(MouseEvent e) {
            x = e.getX();
            y = e.getY();
            la.setText("x = " + x + " y = " + y);
        }
    
        public void mouseReleased(MouseEvent e) { }
        public void mouseEntered(MouseEvent e) { }
        public void mouseExited(MouseEvent e) { }
        public void mouseClicked(MouseEvent e) { }
    
        public static void main(String[] args) {
            new Finestra();
        }
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema progamma

    Originariamente inviato da killerbomb
    volevo creare un applicazione che cliccando sulla finestra della stessa applicazione modifichi il testo di un label con le coordinate de puntatore del mouse.però compilando il sorgente non succede nulla. come posso risolvere?
    Intanto hai fatto un setSize(600,600) ma poi fai pack() .... che riduce il tutto alla dimensione "giusta" della label (quindi che ti serve setSize??).

    Poi comunque la label viene aggiunta nella parte CENTER del BorderLayout (layout predefinito del content pane), quindi la label occupa tutto lo spazio del content pane. E questo vuol dire che il click arriva alla JLabel e non al JFrame.

    Pertanto dovresti ad esempio registrare il MouseListener sulla label.

    E 3 cose finali:
    - show() è deprecato (da non usare più), usa setVisible(true).
    - non serve repaint() se setti il testo della label.
    - imposta il default close operation del JFrame ... altrimenti non la chiudi. vedi setDefaultCloseOperation().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Il titolo della discussione deve dare un'indicazione sul suo contenuto. Tutti quelli che postano qui hanno un problema con un programma...


    Correggo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: problema progamma

    Originariamente inviato da andbin
    Poi comunque la label viene aggiunta nella parte CENTER del BorderLayout (layout predefinito del content pane), quindi la label occupa tutto lo spazio del content pane. E questo vuol dire che il click arriva alla JLabel e non al JFrame.
    :master: Però nella prova che ho fatto io (java 1.6.0_13 per mac) il programma funziona :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    148

    Re: Re: Re: problema progamma

    Originariamente inviato da Alex'87
    :master: Però nella prova che ho fatto io (java 1.6.0_13 per mac) il programma funziona :master:
    vi ringrazio tutti per i consigli

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