gewünschte ActionListener bei RadioButton mit isSelected geht nicht

  • Themenstarter Themenstarter Gelöschtes Mitglied 38587
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 38587

Gast
Hallo liebe Foren-Teilnehmer,

kann mir als GUI Anfänger von euch jemand sagen, warum in meinem "Gesamtpreis"-Feld bei Klicken von eines der 3 RadioButtons der Anreiseoptionen nicht der Preis erscheint? Was stimmt bei meinem ActionListener nicht?

Danke schon mal im Voraus! :applaus:

Java:
public class GUIAnmeldung2 extends JFrame implements ActionListener{

	
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField bNachname;
	private JTextField bStrasse;
	private JTextField bHausnr;
	private JTextField bPlz;
	private JTextField bOrt;
	private JTextField bGeburtsdatum;
	private JTextField bMailadresse;
	private JTextField bTelefonnummer;
	private JTextField bVorname;
	private JTextField bVorlaeufigerPreis;
	private JTextField bGutscheincode;
	private JTextField bGesamtpreis;
	private JCheckBox bGeschaeftsbedingungen;
	private JCheckBox bKatalogSuedsee;
	private JCheckBox bKatalogKaribik;
	private JCheckBox bKatalogNordeuropa;
	private JCheckBox bKatalogMittelmeer;
	private JButton bBuchen;
	private JCheckBox bBestatetigungSMS;
	private JCheckBox bExtragepaeck;
	private JCheckBox bReiseversicherung;
	private JCheckBox bStornoversicherung;
	private JRadioButton bAnreiseGraz;
	private JRadioButton bAnreiseWien;
	private JRadioButton bEigeneAnreise;
	private JRadioButton bGrandSuite;
	private JRadioButton bPanoramasuite;
	private JRadioButton bMinisuite;
	private JRadioButton bAussenBalkon;
	private JRadioButton bAussenPremium;
	private JRadioButton bAussenStd;
	private JRadioButton bInnenkabine;
	private JRadioButton bChioggia;
	private JRadioButton bTriest;
	private JRadioButton bVenedig;
	private JComboBox bStaatsangehoerigkeit;
	private ArrayList<Passagier> passagiere = new ArrayList<Passagier>();
	private double preisDerReise = 0;
	
	
	/**
	 * kabinen.add(bInnenkabine);
		kabinen.add(bAussenStd);
		kabinen.add(bAussenPremium);
		kabinen.add(bAussenBalkon);
		kabinen.add(bMinisuite);
		kabinen.add(bPanoramasuite);
		kabinen.add(bGrandSuite);
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GUIAnmeldung2 frame2 = new GUIAnmeldung2();
					frame2.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GUIAnmeldung2() {
		setTitle("Anmeldung Kreuzfahrt 101 - Mittelmeer");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 879, 733);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		bNachname = new JTextField();
		bNachname.setBounds(408, 88, 423, 20);
		contentPane.add(bNachname);
		bNachname.setColumns(10);
		
		bStrasse = new JTextField();
		bStrasse.setBounds(10, 133, 332, 20);
		contentPane.add(bStrasse);
		bStrasse.setColumns(10);
		
		bHausnr = new JTextField();
		bHausnr.setBounds(352, 133, 86, 20);
		contentPane.add(bHausnr);
		bHausnr.setColumns(10);
		
		bPlz = new JTextField();
		bPlz.setBounds(448, 133, 86, 20);
		contentPane.add(bPlz);
		bPlz.setColumns(10);
		
		bOrt = new JTextField();
		bOrt.setBounds(544, 133, 284, 20);
		contentPane.add(bOrt);
		bOrt.setColumns(10);
		
		bGeburtsdatum = new JTextField();
		bGeburtsdatum.setBounds(10, 178, 109, 20);
		contentPane.add(bGeburtsdatum);
		bGeburtsdatum.setColumns(10);
		
		bMailadresse = new JTextField();
		bMailadresse.setBounds(129, 178, 367, 20);
		contentPane.add(bMailadresse);
		bMailadresse.setColumns(10);
		
		bTelefonnummer = new JTextField();
		bTelefonnummer.setToolTipText("bitte geben Sie Ihre Telefonnummer mit Land und Vorwahl an\r\nzB: 0043 1 546789");
		bTelefonnummer.setBounds(506, 178, 160, 20);
		contentPane.add(bTelefonnummer);
		bTelefonnummer.setColumns(10);
		
		bStaatsangehoerigkeit = new JComboBox();
		bStaatsangehoerigkeit.setModel(new DefaultComboBoxModel(new String[] {"Oesterreich", "Deutschland", "Schweiz"}));
		bStaatsangehoerigkeit.setBounds(676, 178, 150, 20);
		contentPane.add(bStaatsangehoerigkeit);
		
		bVorname = new JTextField();
		bVorname.setBounds(10, 88, 385, 20);
		contentPane.add(bVorname);
		bVorname.setColumns(10);
		
		final ButtonGroup abfahrtshafen = new ButtonGroup();
		
		JLabel lblIhrVorname = new JLabel("Ihr Vorname");
		lblIhrVorname.setBounds(11, 73, 85, 14);
		contentPane.add(lblIhrVorname);
		
		JLabel lblDankeDassSie = new JLabel("Danke dass Sie sich fuer eine Kreuzfahrt von Cruiseline entschieden haben! ");
		lblDankeDassSie.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblDankeDassSie.setVerticalAlignment(SwingConstants.TOP);
		lblDankeDassSie.setBounds(10, 11, 476, 20);
		contentPane.add(lblDankeDassSie);
		
		JLabel lblNurNochEin = new JLabel("Nur noch ein paar Schritte bis zu Ihrem Traumurlaub...");
		lblNurNochEin.setBounds(10, 30, 321, 14);
		contentPane.add(lblNurNochEin);
		
		JLabel lblIhrNachname = new JLabel("Ihr Nachname");
		lblIhrNachname.setBounds(411, 73, 85, 14);
		contentPane.add(lblIhrNachname);
		
		JLabel lblStrasse = new JLabel("Strasse");
		lblStrasse.setBounds(10, 119, 46, 14);
		contentPane.add(lblStrasse);
		
		JLabel lblHausnrtuer = new JLabel("Hausnr/Tuer");
		lblHausnrtuer.setBounds(352, 119, 86, 14);
		contentPane.add(lblHausnrtuer);
		
		JLabel lblPlz = new JLabel("PLZ");
		lblPlz.setBounds(448, 119, 46, 14);
		contentPane.add(lblPlz);
		
		JLabel lblOrt = new JLabel("Ort");
		lblOrt.setBounds(544, 119, 46, 14);
		contentPane.add(lblOrt);
		
		JLabel lblGeburtsdatum = new JLabel("Geburtsdatum");
		lblGeburtsdatum.setBounds(10, 164, 86, 14);
		contentPane.add(lblGeburtsdatum);
		
		JLabel lblMailadresse = new JLabel("Mailadresse");
		lblMailadresse.setBounds(129, 164, 109, 14);
		contentPane.add(lblMailadresse);
		
		JLabel lblTelefonnummer = new JLabel("Telefonnummer");
		lblTelefonnummer.setBounds(506, 164, 109, 14);
		contentPane.add(lblTelefonnummer);
		
		JLabel lblStaatsangehoerigkeit = new JLabel("Staatsangehoerigkeit");
		lblStaatsangehoerigkeit.setBounds(679, 164, 129, 14);
		contentPane.add(lblStaatsangehoerigkeit);
		
		JLabel lblAbfahrtshafen = new JLabel("Abfahrtshafen");
		lblAbfahrtshafen.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblAbfahrtshafen.setBounds(10, 233, 109, 14);
		contentPane.add(lblAbfahrtshafen);
		
		bVenedig = new JRadioButton("Venedig");
		bVenedig.setBounds(10, 254, 117, 23);
		contentPane.add(bVenedig);
		abfahrtshafen.add(bVenedig);
		
		bTriest = new JRadioButton("Triest");
		bTriest.setBounds(10, 275, 109, 23);
		contentPane.add(bTriest);
		abfahrtshafen.add(bTriest);
		
		bChioggia = new JRadioButton("Chioggia");
		bChioggia.setBounds(10, 301, 109, 23);
		contentPane.add(bChioggia);
		abfahrtshafen.add(bChioggia);
		
		JLabel lblPersoenlicheDaten = new JLabel("Persoenliche Daten");
		lblPersoenlicheDaten.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblPersoenlicheDaten.setBounds(10, 48, 332, 20);
		contentPane.add(lblPersoenlicheDaten);
		
		JLabel lblReisedaten = new JLabel("Reisedaten");
		lblReisedaten.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblReisedaten.setBounds(10, 209, 129, 20);
		contentPane.add(lblReisedaten);
		
		JLabel lblKabine = new JLabel("Kabine");
		lblKabine.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblKabine.setBounds(10, 363, 109, 14);
		contentPane.add(lblKabine);
		
		bInnenkabine = new JRadioButton("Innenkabine EUR 369");
		bInnenkabine.setBounds(10, 384, 200, 23);
		contentPane.add(bInnenkabine);
		
		
		bAussenStd = new JRadioButton("Aussenkabine Standard EUR 439");
		bAussenStd.setBounds(10, 410, 250, 23);
		contentPane.add(bAussenStd);
		
		
		bAussenPremium = new JRadioButton("Aussenkabine Premium EUR 499");
		bAussenPremium.setBounds(10, 436, 250, 23);
		contentPane.add(bAussenPremium);
		
		
		bAussenBalkon = new JRadioButton("Aussen mit Balkon EUR 539");
		bAussenBalkon.setBounds(10, 462, 183, 23);
		contentPane.add(bAussenBalkon);
		
		
		bMinisuite = new JRadioButton("Minisuite EUR 719");
		bMinisuite.setBounds(10, 488, 183, 23);
		contentPane.add(bMinisuite);
		
		
		bPanoramasuite = new JRadioButton("Panoramasuite EUR 859");
		bPanoramasuite.setBounds(10, 514, 183, 23);
		contentPane.add(bPanoramasuite);
		
		
		bGrandSuite = new JRadioButton("Grand Suite EUR 979");
		bGrandSuite.setBounds(10, 540, 183, 23);
		contentPane.add(bGrandSuite);
		
		
		final ButtonGroup kabinen = new ButtonGroup();
		kabinen.add(bInnenkabine);
		kabinen.add(bAussenStd);
		kabinen.add(bAussenPremium);
		kabinen.add(bAussenBalkon);
		kabinen.add(bMinisuite);
		kabinen.add(bPanoramasuite);
		kabinen.add(bGrandSuite);
		
		
		
		bReiseversicherung = new JCheckBox("JA, ich moechte eine Reiseversicherung im Wert von EUR 14,90 pro Person abschliessen");
		bReiseversicherung.setBounds(285, 420, 550, 23);
		contentPane.add(bReiseversicherung);
		
		bStornoversicherung = new JCheckBox("JA, ich moechte eine Stornoversicherung im Wert von EUR 8,00 pro Person abschliessen");
		bStornoversicherung.setBounds(285, 446, 550, 23);
		contentPane.add(bStornoversicherung);
		
		JLabel lblAnreise = new JLabel("Anreise");
		lblAnreise.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblAnreise.setBounds(129, 233, 109, 14);
		contentPane.add(lblAnreise);
		
		bEigeneAnreise = new JRadioButton("eigene Anreise");
		bEigeneAnreise.setBounds(129, 254, 205, 23);
		contentPane.add(bEigeneAnreise);
		
		
		bAnreiseWien = new JRadioButton("Bus Anreise EUR 35,00 pro Person ab Wien");
		bAnreiseWien.setBounds(129, 301, 385, 23);
		contentPane.add(bAnreiseWien);
		
		
		bAnreiseGraz = new JRadioButton("Bus Anreise EUR 30,00 pro Person ab Graz");
		bAnreiseGraz.setBounds(129, 275, 340, 23);
		contentPane.add(bAnreiseGraz);
		
		
		final ButtonGroup anreise = new ButtonGroup();
		anreise.add(bEigeneAnreise);
		anreise.add(bAnreiseGraz);
		anreise.add(bAnreiseWien);
		
		Scrollbar scrollbar = new Scrollbar();
		scrollbar.setBounds(846, 0, 17, 726);
		contentPane.add(scrollbar);
		
		bExtragepaeck = new JCheckBox("JA, ich moechte Extragepaeck zu einem Preis von EUR 45,00 mitnehmen");
		bExtragepaeck.setToolTipText("Wir erlauben pro Person 1 Gepaeckstueck ueber 20 kg an Bord. Sie wollen mehr Gepaeck mitnehmen? kein Problem - fuer EUR 45,00 pro Koffer koennen Sie dies gerne tun. Klicken Sie nur das Kaestchen an");
		bExtragepaeck.setBounds(285, 472, 519, 23);
		contentPane.add(bExtragepaeck);
		
		bBestatetigungSMS = new JCheckBox("kostenlose Buchungsbestaetingung per SMS ");
		bBestatetigungSMS.setToolTipText("");
		bBestatetigungSMS.setBounds(285, 497, 519, 23);
		contentPane.add(bBestatetigungSMS);
		
		JLabel lblHabenSieEinen = new JLabel("Haben Sie einen Gutscheincode? Bitte hier eingeben:");
		lblHabenSieEinen.setHorizontalAlignment(SwingConstants.RIGHT);
		lblHabenSieEinen.setToolTipText("Hinweis: Gutscheine von uns haben eine 5stellige ZahlenZiffernKombination");
		lblHabenSieEinen.setBounds(337, 544, 367, 14);
		contentPane.add(lblHabenSieEinen);
		
		bGutscheincode = new JTextField();
		bGutscheincode.setBounds(742, 541, 86, 20);
		contentPane.add(bGutscheincode);
		bGutscheincode.setColumns(10);
		
		JLabel lblGesamtpreisIhrerReise = new JLabel("Gesamtpreis Ihrer Reise:");
		lblGesamtpreisIhrerReise.setHorizontalAlignment(SwingConstants.RIGHT);
		lblGesamtpreisIhrerReise.setBounds(448, 587, 250, 14);
		contentPane.add(lblGesamtpreisIhrerReise);
		
		JLabel label_1 = new JLabel("EUR");
		label_1.setHorizontalAlignment(SwingConstants.RIGHT);
		label_1.setBounds(701, 587, 31, 14);
		contentPane.add(label_1);
		
		bGesamtpreis = new JTextField();
		bGesamtpreis.setColumns(10);
		bGesamtpreis.setBounds(742, 584, 86, 20);
		contentPane.add(bGesamtpreis);
		bGesamtpreis.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				if (bEigeneAnreise.isSelected()){
					preisDerReise += 0;
					bGesamtpreis.setText(""+preisDerReise);
				
				}
				if (bAnreiseWien.isSelected()){
					preisDerReise += 35;
					bGesamtpreis.setText(""+preisDerReise);
					
				
				}
				if (bAnreiseGraz.isSelected()){
					preisDerReise += 30;
					bGesamtpreis.setText(""+preisDerReise);
				
				}

				
			}
		});
		
		JLabel lblMitDrueckenAuf = new JLabel("Mit Druecken auf Buchen bestaetigen Sie ihre verbindliche Buchung.");
		lblMitDrueckenAuf.setHorizontalAlignment(SwingConstants.RIGHT);
		lblMitDrueckenAuf.setBounds(249, 652, 454, 14);
		contentPane.add(lblMitDrueckenAuf);
		
		JLabel lblSieErhaltenIn = new JLabel("Sie erhalten in den naechsten Tagen den Erlagschein fuer die Reise zugeschickt.");
		lblSieErhaltenIn.setHorizontalAlignment(SwingConstants.RIGHT);
		lblSieErhaltenIn.setBounds(219, 671, 489, 14);
		contentPane.add(lblSieErhaltenIn);
		
		bBuchen = new JButton("BUCHEN");
		bBuchen.setFont(new Font("Tahoma", Font.BOLD, 14));
		bBuchen.setBounds(724, 652, 107, 30);
		contentPane.add(bBuchen);
		
		JLabel lblGratiskatalogAnfordern = new JLabel("Gratiskatalog anfordern:");
		lblGratiskatalogAnfordern.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblGratiskatalogAnfordern.setBounds(10, 627, 200, 14);
		contentPane.add(lblGratiskatalogAnfordern);
		
		bKatalogMittelmeer = new JCheckBox("Mittelmeer");
		bKatalogMittelmeer.setBounds(10, 648, 97, 23);
		contentPane.add(bKatalogMittelmeer);
		
		bKatalogNordeuropa = new JCheckBox("Nordeuropa");
		bKatalogNordeuropa.setBounds(10, 667, 97, 23);
		contentPane.add(bKatalogNordeuropa);
		
		bKatalogKaribik = new JCheckBox("Karibik");
		bKatalogKaribik.setBounds(127, 648, 97, 23);
		contentPane.add(bKatalogKaribik);
		
		bKatalogSuedsee = new JCheckBox("Suedsee");
		bKatalogSuedsee.setBounds(127, 667, 97, 23);
		contentPane.add(bKatalogSuedsee);
		
		bGeschaeftsbedingungen = new JCheckBox("Ja, ich habe die Geschaeftsbedingungen gelesen und akzeptiert.");
		bGeschaeftsbedingungen.setBounds(285, 618, 447, 23);
		contentPane.add(bGeschaeftsbedingungen);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		
		
	}


}
 
Der Grund liegt darin, dass du an deine RadioButtons einen Listener anmelden musst. In deinem Fall hast du dem JTextField einen Listener hinzugefügt. Die actionPerformed(); Methode wird also nur aufgerufen, wenn dein JTextField das Event wirft.
 

Zurück
Oben