Hallo Leute,
noch ein kurzes Posting von mir.
In der Java Vorlesung sind wir leider nicht weiter gekommen bzw. wir haben uns bei den EventListenern nur die actionPerformed Methode angeschaut und mit der alle weiteren Maßnahmen absolviert.
Da ich jetzt auch mit Tastatureingaben KeyEvent arbeiten wollte, habe ich ein kleines Programm folgend umgeschrieben:
Weiterer Text folgt unter dem Code
[/code]
Bei der ActionEvent e Methode konnte man die Buttons ja z.B. per e.getActionComman.equals("...") vergleichen und dann eine Fallunterscheidung machen.
Geht das bei den KeyEvents ähnlich?
Kann man die KeyEvents der beiden Knöpfe zusammenfassen und/oder kürzer schreiben oder geht das eher nicht?
Vielen Dank für hilfreiche Antworten
noch eine kurze Info: so wie das Programm jetzt aussieht, funktioniert es, daher nur die Frage, ob man den Code anders zusammenfassen oder kürzen kann. Speziell die Buttons.
Lg
noch ein kurzes Posting von mir.
In der Java Vorlesung sind wir leider nicht weiter gekommen bzw. wir haben uns bei den EventListenern nur die actionPerformed Methode angeschaut und mit der alle weiteren Maßnahmen absolviert.
Da ich jetzt auch mit Tastatureingaben KeyEvent arbeiten wollte, habe ich ein kleines Programm folgend umgeschrieben:
Weiterer Text folgt unter dem Code
Java:
[code]
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Zahlen_raten_keyevent extends JFrame implements KeyListener
{
String a="Bitte geben Sie eine Zahl ein: ";
String b="Ihre Eingabe war zu niedrig";
String d="Ihre Eingabe war zu groß";
JButton pruefen,allesLoeschen;
JLabel anzeige,ausgabe,info;
JTextField eingabe;
Container c;
private static final long serialVersionUID = 1L;
public Zahlen_raten_keyevent(String titel)
{
c=getContentPane();
setLayout(new GridLayout(2,3));
setSize(850, 200);
setLocation(200, 200);
pruefen=new JButton("Prüfen");
pruefen.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent ke)
{
if((ke.getKeyCode()==KeyEvent.VK_ENTER)&&(pruefen.isFocusOwner()))//getActionCommand().equals("Prüfen"))&&(eingabe.getText()!=null))
{
int zahl2=Integer.parseInt(eingabe.getText());
if(zahl2<zahl)
{
ausgabe.setText(b);
}
else if(zahl2>zahl)
{
ausgabe.setText(d);
}
else if(zahl2==zahl)
{
ausgabe.setText("<html>Ihre Eingabe war korrekt! :-) <br><br>Die gesuchte zufällige Zahl<br><br> ist die: "+zahl+"</html>");
}
else
{
String f="Fehler!";
JOptionPane.showMessageDialog(null, "Sie müssen erst eine Eingabe tätigen",f,JOptionPane.ERROR_MESSAGE);
}
}
}
});
allesLoeschen=new JButton("Clear");
allesLoeschen.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent ke)
{
if((ke.getKeyCode()==KeyEvent.VK_ENTER)&&(allesLoeschen.isFocusOwner()))//getActionCommand().equals("Clear"))
{
eingabe.setText("");
ausgabe.setText("");
}
else if(ke.getKeyCode()==KeyEvent.VK_ESCAPE)
{
dispose();
}
}
});
anzeige=new JLabel("Bitte geben Sie eine Zahl ein: ",JLabel.RIGHT);
ausgabe=new JLabel();
ausgabe.setOpaque(true);
ausgabe.setBackground(Color.WHITE);
ausgabe.setToolTipText("Hier wird ihre Lösung erscheinen");
eingabe=new JTextField();
info=new JLabel("Zufallszahlenraten by Alexander Ropella (c)",JLabel.CENTER);
c.add(anzeige);
c.add(eingabe);
c.add(pruefen);
c.add(allesLoeschen);
c.add(ausgabe);
c.add(info);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new Zahlen_raten_keyevent("Zahlenraten GUI");
}
Random rnd = new Random();
int zahl=rnd.nextInt(101);
@Override
public void keyPressed(KeyEvent e) {} @Override public void keyReleased(KeyEvent e) {} @Override public void keyTyped(KeyEvent e) {}
}
Bei der ActionEvent e Methode konnte man die Buttons ja z.B. per e.getActionComman.equals("...") vergleichen und dann eine Fallunterscheidung machen.
Geht das bei den KeyEvents ähnlich?
Kann man die KeyEvents der beiden Knöpfe zusammenfassen und/oder kürzer schreiben oder geht das eher nicht?
Vielen Dank für hilfreiche Antworten
noch eine kurze Info: so wie das Programm jetzt aussieht, funktioniert es, daher nur die Frage, ob man den Code anders zusammenfassen oder kürzen kann. Speziell die Buttons.
Lg
Zuletzt bearbeitet: