Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] Aiuto con i nomi dei JButton

    Ciao a tutti!

    Ho un problema riguardo ad un frame che sto cercando di sviluppare:
    Contiene JLabel, JTextField, un Choice e due JButton, a cui però devo dare un nome per potergli associare i rispettivi eventi, però vorrei evitare di stravolgere il modo in cui li ho dichiarati, qualcuno sa come posso fare?
    Posto qui sotto il
    codice:
    import java.awt.*;
    import javax.swing.*;
    //import java.awt.event.*;
    
    public class Screen {
        public final static boolean RIGHT_TO_LEFT = false;
    
        public static void addComponentsToPane(Container contentPane) {
            if (RIGHT_TO_LEFT) {
                contentPane.setComponentOrientation(
                    ComponentOrientation.RIGHT_TO_LEFT);
            }
    	//Due colonne e dodici righe:
            contentPane.setLayout(new GridLayout(12,2));
    
            contentPane.add(new JLabel("Nome:"));
            contentPane.add(new JTextField("Inserisci il nome."));
            contentPane.add(new JLabel("Cognome:"));
            contentPane.add(new JTextField("Inserisci il cognome."));
            contentPane.add(new JLabel("Indirizzo:"));
            contentPane.add(new JTextField("Inserisci l'indirizzo."));
            contentPane.add(new JLabel("Ruolo:"));
            contentPane.add(new JTextField("Inserisci il ruolo."));
            contentPane.add(new JLabel("Matricola:"));
            contentPane.add(new JTextField("Inserisci la matricola."));
            contentPane.add(new JLabel("Paga base:"));
            contentPane.add(new JTextField("Inserisci la paga base."));
            contentPane.add(new JLabel("Paga oraria:"));
            contentPane.add(new JTextField("Inserisci la paga oraria attuale."));
            contentPane.add(new JLabel("Ore giornaliere:"));
            contentPane.add(new JTextField("Inserisci le ore giornaliere lavorative."));
            contentPane.add(new JLabel("Sede:"));
            contentPane.add(new JTextField("Inserisci la sede dell'ufficio."));
            contentPane.add(new JLabel("Numero dipendenti:"));
            contentPane.add(new JTextField("Inserisci il numero dei dipendenti dell'ufficio."));
            contentPane.add(new JLabel("Modifica dipendente:"));
    	   Choice theoptions = new Choice();
    	   theoptions.addItem("Aggiungi dipendente");
    	   theoptions.addItem("Aggiorna dipendente");
    	   theoptions.addItem("Annulla dipendente");
      	   contentPane.add(theoptions);
            contentPane.add(new JButton ("Fine"));
            contentPane.add(new JButton ("Annulla"));
    
    	//ActionListener(s) da implementare dopo questa classe
    	Receiver1 receiver1 = new Receiver1();
    	Receiver2 receiver2 = new Receiver2();
    
    	//		assegnazione ActionListener(s) ai corrispondenti JButton(s)	assegnazione ActionListener(s) ai corrispondenti JButton(s)
    
        }
    
        private static void createAndShowGUI() {
            JFrame.setDefaultLookAndFeelDecorated(true);
    
            JFrame frame = new JFrame("Screen");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
            //Aggiungo i componenti al pannello:
            addComponentsToPane(frame.getContentPane());
    
            frame.pack();
            frame.setVisible(true);
        }
    
        public static void main(String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
                }
            });
        }
    }
    Vi ringrazio!
    Gato

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se non vuoi passarti l'albero dei componenti aggiunti al tuo Container alla ricerca dei JButton (per esempio ciclando sull'array di Component che ricevi tramite getComponents) e quindi identificando quale bottone sia quale ed appiccicandogli il giusto listener, "stravolgi" il modo (brutto e scomodo per componenti in cui effettivamente accade qualcosa) con cui li hai dichiarati.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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

    Re: [JAVA] Aiuto con i nomi dei JButton

    Originariamente inviato da fpertegato
    però vorrei evitare di stravolgere il modo in cui li ho dichiarati, qualcuno sa come posso fare?

    codice:
            contentPane.add(new JButton ("Fine"));
            contentPane.add(new JButton ("Annulla"));
    
    	//ActionListener(s) da implementare dopo questa classe
    	Receiver1 receiver1 = new Receiver1();
    	Receiver2 receiver2 = new Receiver2();
    Non è che devi "stravolgere" particolarmente più di tanto .... basta anche soltanto che tieni i reference ai JButton almeno in variabili locali (se non ti servono come variabili di istanza).

    codice:
    JButton fineButton = new JButton("Fine");
    contentPane.add(fineButton);
    
    fineButton.addActionListener(......);
    Insomma, questo è perlomeno il modo sensato. Non inventarti altro ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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

    Re: Re: [JAVA] Aiuto con i nomi dei JButton

    Originariamente inviato da andbin
    [...]
    Insomma, questo è perlomeno il modo sensato. Non inventarti altro ....
    150%
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Grazie mille a tutti e due, le dichiarazioni dei vari componenti mi mandano sempre in confusione!! =)
    Gato

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.