Classe Prenotazione con 2 scelte

  • Creatore Discussione Creatore Discussione CtNapoli
  • Data di inizio Data di inizio

CtNapoli

Nuovo Utente
3 Giu 2016
2
0
1
34
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
 
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:
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:");
    }
}
 

Discussioni simili