Classe Prenotazione con 2 scelte

Discussione in 'Java' iniziata da CtNapoli, 3 Giugno 2016.

  1. CtNapoli

    CtNapoli Nuovo Utente

    Registrato:
    3 Giugno 2016
    Messaggi:
    2
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Devo realizzare una classe con interfaccia grafica che faccia in modo che un cliente possa prenotare un Taxi via sms o e-mail

    Al momento quello che ho scritto è:

    Codice:
    package view;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class Prenotation extends JFrame implements ActionListener {
        JLabel lblSms;
        JLabel lblEmail;
        JPanel pnlMain;
        public JButton txtsms;
        public JButton txtemail;
     
     
        public Prenotation (String title){
            super(title);
            lblSms= new JLabel("sms:");
            lblEmail= new JLabel("email:");
            pnlMain = new JPanel();
            txtsms = new JButton("Sms");
            txtemail = new JButton("E-Mail");             
         
            pnlMain.add(lblSms);
            pnlMain.add(txtsms);
            pnlMain.add(lblEmail);
            pnlMain.add(txtemail);
    
            txtsms.addActionListener(this);
            txtemail.addActionListener(this);
         
            getContentPane().add(pnlMain);
         
            pack();
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
         
        }
     
         
     
        public void actionPerformed(ActionEvent event){
         
            System.out.println("Prenotato");
    
        }
     
        public static void main (String[] args )
        {
            new Prenotation("Prenotazione Avvenuta");
        }
    }
    Vorrei fare in modo che se al click del mouse scelgo sms mi compare che ho scelto di prenotare con sms, se clicco email allora mi compare che ho scelto di prenotare con email
    Inoltre vorrei fare in modo che una volta cliccata una delle 2 possibilità, non si dia la possibilità all'utente di poter cliccar nuovamente una delle 2 scelte
     
  2. ottofonsuppost

    ottofonsuppost Utente Attivo

    Registrato:
    10 Maggio 2016
    Messaggi:
    170
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Prima della SCELTA del cliente la variabile SCELTA vale 1; se i cliente ha scelto, la variabile vale ZERO e se la variabile scelta vale ZERO niente più possibilità di scegliere. Ma conviene dare la possibilità al cliente di ritornare sui suoi passi.

    Oppure nel componente metti SETenabled(false) dopo che è stato cliccato.
     
    Ultima modifica: 3 Giugno 2016
  3. CtNapoli

    CtNapoli Nuovo Utente

    Registrato:
    3 Giugno 2016
    Messaggi:
    2
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Per quanto riguarda la classe Prenotation ho fatto così:
    Codice:
    package view;
    
    import java.awt.FlowLayout;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JRadioButton;
    import javax.swing.SwingUtilities;
    
    public class Prenotation extends JFrame {
    
        private JButton buttonOK = new JButton("OK");
    
        public JRadioButton option1 = new JRadioButton("Sms");
        public JRadioButton option2 = new JRadioButton("Email");
    
        private JLabel labelImage = new JLabel();
    
        public Prenotation() {
            super("Swing JRadioButton Demo");
    
            ButtonGroup group = new ButtonGroup();
            group.add(option1);
            group.add(option2);
    
            option2.setSelected(true);
    
            setLayout(new GridBagLayout());
            GridBagConstraints constraints = new GridBagConstraints();
            constraints.gridx = 0;
            constraints.gridy = 0;
            constraints.anchor = GridBagConstraints.CENTER;
            constraints.insets = new Insets(10, 10, 10, 10);
    
            add(option1, constraints);
            constraints.gridx = 1;
            add(option2, constraints);
            constraints.gridx = 2;
    
            constraints.gridx = 0;
            constraints.gridy = 1;
            constraints.gridwidth = 3;
    
            add(labelImage, constraints);
    
            constraints.gridy = 2;
            add(buttonOK, constraints);
    
            RadioButtonActionListener actionListener = new RadioButtonActionListener();
            option1.addActionListener(actionListener);
            option1.addActionListener(actionListener);
    
            buttonOK.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent event) {
                    String selectedOption = "";
                    if (option1.isSelected()) {
                        selectedOption = "Sms";
                    }
                    else if (option2.isSelected()) { 
                        selectedOption = "Email";
                    }
                    JOptionPane.showMessageDialog(Prenotation.this,
                            "Hai scelto: " + selectedOption);
                }
            });
    
            pack();
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLocationRelativeTo(null);
        }
    
        class RadioButtonActionListener implements ActionListener {
            @Override
            public void actionPerformed(ActionEvent event) {
                JRadioButton button = (JRadioButton) event.getSource();
                 
            }
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    new Prenotation().setVisible(true);
                }
            });
        }
    }
    

    Magari ho lasciato qualcosa di troppo, invece per la parte relativa al controllore ho qualche difficoltà
    Come faccio a tenere nota del bottone che ho cliccato
    Al momento la parte relativa all'ActionPerformed l'ho impostata così ma c'è da cambiarne il funzionamento

    Codice:
    package controller;
    
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.AbstractButton;
    import javax.swing.ButtonGroup;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    
    import view.Prenotation;
    
    public class PrenotationController implements ActionListener {
        Prenotation view;
        public PrenotationController(Prenotation view){
            this.view = view;
        }
        public void actionPerformed(ActionEvent arg0) {
            System.out.println("Hai Cliccato");
            int sms;
            int email;
            sms = Integer.parseInt(view.option1.getText());
            email = Integer.parseInt(view.option1.getText());
            System.out.println("Hai scelto:");
        }
    }
     
Sto caricando...

Condividi questa Pagina