JButton

Status
Nicht offen für weitere Antworten.
B

Banana

Gast
Hallo Zusammen!

Ich habe mir ein kleines Lottospiel programmiert, welches folgendermaßen funktioniert.

Ich habe 6 Textfelder, in dem man seinen Tipp eintippen kann.
Dann muss man auf den JButton klicken, damit der ActionListener aufgerufen wird, welcher dafür sorgt,
die eingetippen Zahlen auszulesen und anschließend auszugeben. Zudem werden sechs Zufallszahlen erstellt.
Diese Zahlen werden mit den eingegeben Zahlen verglichen und die Anzahl der richtigen Zahlen wird ausgegeben.
Das funktioniert auch alles super, aber nun zu meinem Problem.

Ich hätte gerne, dass wenn man erneut auf den Button drückt, dass das Programm dann vom neuen startet und das spiel von vorne los geht. Nur leider habe ich nichts im Internet oder in Büchern gefunden, die mir erklären wie ich das
hinbekommen kann.

Zudem funktioniert der Button momentan nur, wenn ich Ihn mit der Maus anklicke, aber ich würde gerne dafür die
Enter-Taste benutzen können.


Wäre sehr nett wenn mir jemand helfen könnte.

Gruß Banana
 

The_S

Top Contributor
Du musst einfach deine Methoden erneut aufrufen.

Imho ist es reichlich sinnfrei den Button in diesem Fall mit der Enter-Taste zu "verbinden". Da der Button hierzu ohnehin erstmal den Fokus braucht. Ergo kannste ihn dann auch gleich anklicken ;) .
 
G

Guest

Gast
Danke, dass hatte ich auch schon probiert, weiß aber nicht genau wie das funktioniert und deswegen hat das nicht geklappt.
Ich kann ja mal meinen Quellcode posten. Wäre sehr nett, wenn du mir dann nochmal helfen könntest
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.HashSet;
import java.util.Random;

//Fensterklasse definieren
public class Oberfläche extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public JButton m_hänsel, m_und, m_gretel;
	public int zahl ;
	public int anzahl= 0;
	public boolean eingefuegt;
	
	public JLabel ttipp1 = null;
	public JLabel ttipp2 = null;
	public JLabel ttipp3 = null;
	public JLabel ttipp4 = null;
	public JLabel ttipp5 = null;
	public JLabel ttipp6 = null;
	
	public JTextField tipp1 = null;
	public JTextField tipp2 = null;
	public JTextField tipp3 = null;
	public JTextField tipp4 = null;
	public JTextField tipp5 = null;
	public JTextField tipp6 = null;

	//Konstruktor
	Oberfläche(String titel){
		super(titel);
		
		//Schaltflächen erzeugen
		m_hänsel = new JButton ("Abschicken");
		
		ttipp1= new JLabel("Tipp 1 : ");
		ttipp2= new JLabel("Tipp 2 : ");
		ttipp3= new JLabel("Tipp 3 : ");
		ttipp4= new JLabel("Tipp 4 : ");
		ttipp5= new JLabel("Tipp 5 : ");
		ttipp6= new JLabel("Tipp 6 : ");
		
		
		tipp1 = new JTextField();
		tipp2 = new JTextField();
		tipp3 = new JTextField();
		tipp4 = new JTextField();
		tipp5 = new JTextField();
		tipp6 = new JTextField();
		
		
		tipp1.setColumns(5);
		tipp2.setColumns(5);
		tipp3.setColumns(5);
		tipp4.setColumns(5);
		tipp5.setColumns(5);
		tipp6.setColumns(5);
		
		
		
		
		JLabel text= new JLabel("Bitte geben Sie ihren Tipp ein: ");
		JLabel leer= new JLabel("");
		JLabel leer2= new JLabel("");
		JLabel leer3= new JLabel("");
		
		
		JLabel richtige= new JLabel("Sie haben " + anzahl+ " treffer");
		
	
		//Layout-Manager zum Anordnen der Schaltflächen
		setLayout(new GridLayout(12,2));
		
		//Schaltflächen in Fenster aufnehmen
		add(text);
		add(leer);
		add(ttipp1);
		add(tipp1);
		add(ttipp2);
		add(tipp2);
		add(ttipp3);
		add(tipp3);
		add(ttipp4);
		add(tipp4);
		add(ttipp5);
		add(tipp5);
		add(ttipp6);
		add(tipp6);
		add(leer2);
		add(m_hänsel);
		
		
//		Anwendung schließen wenn Fenster geschlossen wird
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		
		this.m_hänsel.addActionListener(new CMeinActionLauscher(this));
	}

		
		// Schaltflächen bei ActionListener registrieren
		//m_und.addActionListener(new CMeinActionLauscher() );
		//m_gretel.addActionListener(new CMeinActionLauscher());*/



	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		// TODO Automatisch erstellter Methoden-Stub
		
		Oberfläche fenster = new Oberfläche("Swing");
		fenster.pack();
		//fenster.setSize(350,100);
		fenster.setVisible(true);
		
		
		

	}

}
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.HashSet;
import java.util.Random;

import javax.swing.JLabel;


public class CMeinActionLauscher implements ActionListener 
{
	
	
	
	private Oberfläche o = null;
	
	public CMeinActionLauscher(Oberfläche o)
	{
		this.o = o;
	}
	
	public void actionPerformed(ActionEvent e) 
	{
		int zahl = 0 ;
		int anzahl= 0;
		boolean eingefuegt;
		int zaehler = 0;
		String wiederholen;
		
		//System.out.println ("Hänsel wurde gedrückt");
		// TODO Automatisch erstellter Methoden-Stub
		this.o.m_hänsel.setText("Nochmal");
		
		
		String one= this.o.tipp1.getText();
		String two= this.o.tipp2.getText();
		String three= this.o.tipp3.getText();
		String four= this.o.tipp4.getText();
		String five= this.o.tipp5.getText();
		String six= this.o.tipp6.getText();
		
		JLabel komplett= new JLabel("Ihr Tipp lautet: ");
		JLabel kompletto= new JLabel(one +" "+ two +" "+ three+" "+ four+" "+ five+" " + six);
		JLabel lotto= new JLabel ("Die Lottozahlen : ");
		
		int one1= Integer.parseInt(one);
		int two2= Integer.parseInt(two);
		int three3= Integer.parseInt(three);
		int four4= Integer.parseInt(four);
		int five5= Integer.parseInt(five);
		int six6= Integer.parseInt(six);
		
		if (one1 > 49 )
		{
			System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! ");
			System.exit(0);
			
		}
		
		if (two2 > 49 )
		{
			System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! ");
			System.exit(0);
			
		}
		
		if (three3 > 49 )
		{
			System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! ");
			System.exit(0);
			
		}
		
		
		if (four4 > 49 )
		{
			System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! ");
			System.exit(0);
			
		}
		
		if (five5 > 49 )
		{
			System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! ");
			System.exit(0);
			
		}
		
		if (six6 > 49 )
		{
			System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! ");
			System.exit(0);
			
		}
		
		if (one1 == two2)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (one1 == three3)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (one1 == four4)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (one1 == five5)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (one1 == six6)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (two2 == three3)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (two2 == four4)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (two2 == five5)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (two2 == six6)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (three3 == four4)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (three3 == five5)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (three3 == six6)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (four4 == five5)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (four4 == six6)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		
		if (five5 == six6)
		{
			System.out.println("Bitte geben Sie eine Zahl nicht doppelt an!!");
			System.exit(0);
		}
		Random generator = new Random();
		HashSet<Integer> gezogen = new HashSet<Integer>();
		
		
		while (anzahl != 6)
		{	
			zahl = generator.nextInt(50);
			
			if (zahl ==0)
			{
				while(zahl == 0)
					zahl = generator.nextInt(50);
			}
			
			eingefuegt = gezogen.add(zahl);
			
			if(!eingefuegt) // schon vorhanden-> neuer Versuch
				continue;
			
			if (zahl == one1)
				zaehler++;
			
			if (zahl == two2)
				zaehler++;
			
			if (zahl == three3)
				zaehler++;
			
			if (zahl == four4)
				zaehler++;
			
			if (zahl == five5)
				zaehler++;
			
			if (zahl == six6)
				zaehler++;
			
			anzahl++;
		
			
		
		}
				
		JLabel lottozahl= new JLabel (" " + gezogen);	
		JLabel richtige= new JLabel ("Sie haben " + zaehler + " Richtige");		
		
		
		
		this.o.add(komplett);
		this.o.add(kompletto);
		this.o.add(lotto);
		this.o.add(lottozahl);
		this.o.add(richtige);
		
		
		
	}

}
 

The_S

Top Contributor
Also wenn ich ehrlich bin, solltest du dich zuerst etwas mehr in OOP und Klassendesign vertiefen. Ansonsten hat das hier nur wenig Sinn :?
 

Leroy42

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Also wenn ich ehrlich bin, solltest du dich zuerst etwas mehr in OOP und Klassendesign vertiefen. Ansonsten hat das hier nur wenig Sinn :?

... und sich auch mal mit Arrays beschäftigen.

Aber auf jeden Fall: Hut ab vor soviel Fleiß!
 
G

Guest

Gast
Hobbit_Im_Blutrausch hat gesagt.:
Du musst einfach deine Methoden erneut aufrufen.

Imho ist es reichlich sinnfrei den Button in diesem Fall mit der Enter-Taste zu "verbinden". Da der Button hierzu ohnehin erstmal den Fokus braucht. Ergo kannste ihn dann auch gleich anklicken ;) .

warum? wenn man mit tab durch die eingabefelder springt kann man doch danach schnell beim button landen und muss dann nicht erst die hand auf die maus legen. sind ja nicht alles nur mausschubser.

leertaste + enter würd ich aber zulassen.
 

The_S

Top Contributor
Um deinen Button mit Enter betätigen zu können musst du die ActionMap anpassen, aber soweit bist du mit deinem jetztigen Kenntnisstand noch lange nicht ;)
 
S

SlaterB

Gast
Code:
if (one1 > 49 ) 
      { 
         System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! "); 
         System.exit(0); 
          
      } 
       
      if (two2 > 49 ) 
      { 
         System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! "); 
         System.exit(0); 
          
      } 
       
      if (three3 > 49 ) 
..............
->
Code:
if (one1 > 49 || two2 > 49 || three3 > 49  ||....) {
       System.out.println("Bitte geben Sie eine Zahl zwischen 1-49 an! "); 
         System.exit(0); 

}
 

Wildcard

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Um deinen Button mit Enter betätigen zu können musst du die ActionMap anpassen, aber soweit bist du mit deinem jetztigen Kenntnisstand noch lange nicht ;)
Das ist eine Look and Feel Vorgabe. Das System look and feel verwendet sowohl unter Linux als auch Windows enter für die Buttons. Mac Os bin ich mir nicht sicher.
 

vidi

Aktives Mitglied
füge deine button einfach einen keylistener hinzu.. der ungefähr so aussieht..

Code:
public class ButtonKeyListener extends KeyAdapter
{
	public void keyReleased(KeyEvent evt)
    {
		
		if (evt.getKeyCode() == KeyEvent.VK_ENTER)
		{
			
			JButton button = (JButton) evt.getSource();
				
			button.doClick();

		}
		
    }
}

bewirkt das wenn du auf deinem button enter drückst, ein click event ausgelöst wird..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
G Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
B JButton erscheint in JFrame, obwohl er diesem nicht zugeordnet wurde! AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
N JButton ausblenden AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
C Swing JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
M JButton - Listener AWT, Swing, JavaFX & SWT 1
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
1 JButton nach Klick ausblenden AWT, Swing, JavaFX & SWT 6
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
J JButton neu zeichnen lassen AWT, Swing, JavaFX & SWT 9
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
J vocab1 = new JButton(""+voc1.get(nr).toString()+""); AWT, Swing, JavaFX & SWT 16
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
S Swing Rückmeldung für JButton AWT, Swing, JavaFX & SWT 4
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
M Swing Mix JComboBox - JButton? AWT, Swing, JavaFX & SWT 6
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
E JButton füllt ganzes JPanel auf AWT, Swing, JavaFX & SWT 6
P Verbuggte custom JButton unter Windows AWT, Swing, JavaFX & SWT 9
W Swing JButton lässt sich nicht anzeigen AWT, Swing, JavaFX & SWT 8
Kandum Swing JButton - onclick -> Grafikfehler AWT, Swing, JavaFX & SWT 2
R JButton durch Enter auslösen AWT, Swing, JavaFX & SWT 7
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5
M Problem mit FlowLayout, JLabel und JButton AWT, Swing, JavaFX & SWT 4
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
D Swing JButton.setenabled(true) funktioniert nicht AWT, Swing, JavaFX & SWT 12
B JButton ausblenden AWT, Swing, JavaFX & SWT 12
G JButton deaktivieren greift nicht AWT, Swing, JavaFX & SWT 14

Ähnliche Java Themen

Neue Themen


Oben