Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Evento Java

  1. #1

    Evento Java

    Salve qualcuno sa spiegarmi perche il mio programmino java quando vado ad attivare il focus del textfield two mi emette giustamente la messagdialog ma pur dandogli ok continua a venir emessa???

    Grazie :tongue:

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;

    public class Evento01 extends JFrame implements ActionListener,FocusListener{
    JTextField one = new JTextField("0", 5);
    JTextField two = new JTextField("0", 5);

    public Evento01() {
    super("Add Two Numbers");
    setSize(400, 60);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container pane = getContentPane();
    FlowLayout flow = new FlowLayout();
    pane.setLayout(flow);
    one.addActionListener(this);
    two.addFocusListener(this);
    pane.add(one);
    pane.add(two);
    setContentPane(pane);
    setVisible(true);
    }

    public static void main(String[] arguments) {
    Evento01 frame = new Evento01();
    }

    public void focusLost(FocusEvent evt){
    // Object src = evt.getSource();
    // if(src == two)
    // JOptionPane.showMessageDialog(null,"FOCUS Lasciato","OK",JOptionPane.YES_OPTION);
    }

    public void focusGained(FocusEvent evt){
    Object src = evt.getSource();
    if(src == two)
    JOptionPane.showMessageDialog(null,"FOCUS Preso","OK",JOptionPane.YES_OPTION);
    }
    public void actionPerformed(ActionEvent evt) {

    Object src = evt.getSource();
    if(src == one)
    JOptionPane.showMessageDialog(null,"Inserisci un numero di matricola","OK",JOptionPane.YES_OPTION);

    }
    }

  2. #2
    codice:
    public void focusGained(FocusEvent evt){ 
    public void focusGained(FocusEvent evt){  Object src = evt.getSource(); 
    if(src == two) 
    JOptionPane.showMessageDialog(null,"FOCUS Preso","OK",JOptionPane.YES_OPTION); 
    //prova ad ggiungere questo:
     this.transferFocus();
    }

    ma forse c'è un modo migliore

  3. #3
    Ho provato ad aggiungere this.transferFocus();
    ma la situazione non migliora

  4. #4
    l'hai messo nel metodo focusGained?

  5. #5
    Si.
    ecco il sorgente

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;

    public class Evento01 extends JFrame implements ActionListener,FocusListener{
    JTextField one = new JTextField("0", 5);
    JTextField two = new JTextField("0", 5);

    public Evento01() {
    super("Add Two Numbers");
    setSize(400, 60);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container pane = getContentPane();
    FlowLayout flow = new FlowLayout();
    pane.setLayout(flow);
    one.addActionListener(this);
    two.addFocusListener(this);
    pane.add(one);
    pane.add(two);
    pane.add(tre);
    setContentPane(pane);
    setVisible(true);
    }

    public static void main(String[] arguments) {
    Evento01 frame = new Evento01();
    }

    public void focusLost(FocusEvent evt){
    // Object src = evt.getSource();
    // if(src == two)
    // JOptionPane.showMessageDialog(null,"FOCUS Lasciato","OK",JOptionPane.YES_OPTION);
    }

    public void focusGained(FocusEvent evt){
    Object src = evt.getSource();
    if(src == two)
    JOptionPane.showMessageDialog(null,"FOCUS Preso","OK",JOptionPane.YES_OPTION);
    this.transferFocus();
    }
    public void actionPerformed(ActionEvent evt) {

    Object src = evt.getSource();
    if(src == one)
    JOptionPane.showMessageDialog(null,"Inserisci un numero di matricola","OK",JOptionPane.YES_OPTION);

    }
    }

  6. #6
    pane.add(tre);

    tre non è definito per il resto spostando il focus a me funziona

  7. #7
    Ma a te spostando il cursore sul field two ti emette la messagdialog "focus Preso" e poi cliccando su ok il focus passa al field two???
    Perche a me continua a emettermi il messagdialog in continuazione.

  8. #8
    no una volta cliccato ok avendo inserito
    this.transferFocus();
    me lo rimette sul primo

  9. #9
    Eseguendolo pero' con sun one studio non mi fa lo stesso scherzo.
    non mi porta solo il cursore sul field two

  10. #10
    cambiando "two.transferFocus();" mi emette solo una volta il messagdialog ma mi riporta il cursore sul campo one.
    ma come faccion a far rimanere il cursore sul campo two.

    Grazie molte per la collaborazione

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.