![]() |
|
|
|||||||
| Java Basics - Anfänger-Themen Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
Also ich habe bei mir folgendes Problem, und zwar nutze ich folgende Quelltexte für jeden Button den ich bei mir in ein Frame einbinde:
Code:
import javax.swing.*;
private JButton button1 = new JButton();
this.add(button1);
button1.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
button1ActionPerformed(evt); } });
public void button1ActionPerformed(final ActionEvent evt) {
//Hier kommt die Ereignisprozedur des Buttons rein
}
|
| #2 (permalink) | |
|
Stammbenutzer
Viertel Megabyte
Registriert seit: 15.10.2004
Fachbeiträge: 454
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
|
Doch natürlich. Hier ein Beispiel
Code:
public class ThreeButtons extends JFrame implements ActionListener {
JButton button1 = new JButton();
JButton button2 = new JButton();
JButton button3 = new JButton();
public ThreeButtons () {
super ("3 Buttons");
setLayout (new FlowLayout ());
getContentPane().add (button1);
getContentPane().add (button2);
getContentPane().add (button3);
button1.addActionListener (this);
button2.addActionListener (this);
button3.addActionListener (this);
}
public void actionPerformed (ActionEvent ae) {
//Hier dann implementieren was geschehen soll
// mit ae.getSource() kann bestimmt werden welches Objekt das ActionEvent erzeugt hat
}
public static void main (String[] args) {
ThreeButtons tb = new ThreeButtons();
tb.setSize (300,100);
tb.setVisible(true);
}
}
|
|
|
| #3 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
Dein Quellcode ist schon mal sehr nützlich, aber es ist bei mir so, dass, das ich bei mir auf dem Frame ein Null-Layout verwenden will und die Buttons an unterschiedlichen Stellen platziert habe.
Und dann noch die Frage, warum steht da bei allen Klassen "public" davor, reicht da nicht auch "privat"? Die Klasse mit den Buttons soll ja nicht von anderen Klassen verwendet werden! |
| #4 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
Könnte mir jemand erklären wie ich das machen soll wenn ich Beispielsweise 3 Buttons habe:
Code:
public void actionPerformed (ActionEvent ae) {
//Hier dann implementieren was geschehen soll
// mit ae.getSource() kann bestimmt werden welches Objekt das ActionEvent erzeugt hat
}
|
| #5 (permalink) | |
|
Stammbenutzer
Megabyte
Registriert seit: 05.01.2005
Fachbeiträge: 2.430
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
|
Kannst ja auch die "Beschriftung" holen zur Unterscheidung der Buttons, mit :
Code:
event.getActionCommand()
__________________
"If you wait for a complete and perfect concept to germinate in your mind,you are likely to wait forever" DeMarco |
|
|
| #6 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
könnte das jemand ein wenig mehr verständlicher beschreiben? Ich habe halt bislang kaum Ahnung von dem graphischen Java, da ich bislang alles mit der DOS-Box gelöst habe.
Wie weise ich denn nun einem Button eine Aktion zu? Wenn ich das mit dem Quelltext mache geht es nicht: Code:
public void s1karte25ActionPerformed(ActionEvent evt) {
this.setTitle("Framename");
}
Code:
public class spiel extends JFrame implements ActionListener {
Code:
event.getActionCommand() |
| #7 (permalink) | |
|
Stammbenutzer
Floppy Disc
Registriert seit: 09.01.2004
Fachbeiträge: 980
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
|
Code:
public void actionPerformed(ActionEvent ae){
if(ae.getActionCommand().equals("Buttonbeschriftung")){
//tu was...
}
}
__________________
Mach dir keine Sorgen wegen der Computer – sollten sie allzu mächtig werden, laß sie einfach einen Ausschuß bilden und Konferenzen abhalten. |
|
|
| #8 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
Das mit "equals" geht bei mir nicht, da ich keine Buttonbeschriftung habe! Statt der Buttonbeschriftung nehme ich Bilder, die jedoch immer bei dem Button varieren, da ich das so mache, das ich Buttons bei mir im Kartenspiel habe, die dann immer per Zufall mit Bildern von Karten bestückt werden. Kann man das nicht irgendwie über die Variable des Buttons statt mit der Beschriftung des Buttons lösen?
|
| #9 (permalink) | |
|
Stammbenutzer
Floppy Disc
Registriert seit: 09.01.2004
Fachbeiträge: 980
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
|
Code:
public void actionPerformed(ActionEvent ae){
if(ae.getSource().equals(button)){
//tu was...
}
}
__________________
Mach dir keine Sorgen wegen der Computer – sollten sie allzu mächtig werden, laß sie einfach einen Ausschuß bilden und Konferenzen abhalten. |
|
|
| #10 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
ich habe nun wie oben beschrieben meine Buttons angelgt. Nun besteht aber ein Problem, und ich weiß nicht woran es liegt. Mein Quelltext:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class game extends Frame implements ActionListener {
int x = 100;
private JButton s1karte[] = new JButton[4];
public game(String spielname) {
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent evt){
System.exit(0);
}
});
this.setTitle(spielname);
this.setSize(800, 600);
this.setBackground(new Color(0, 127, 0));
this.setLayout(null);
this.setVisible(true);
this.setResizable(false);
for(int i=1; i<=4; i++){
s1karte[i].setBounds(x,50,80,110);
x += 20;
this.add(s1karte[i]);
s1karte[i].addActionListener(this);
}
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource().equals(s1karte[1])){
//Ereignisprozedur
}
if(ae.getSource().equals(s1karte[2])){
//Ereignisprozedur
}
if(ae.getSource().equals(s1karte[3])){
//Ereignisprozedur
}
if(ae.getSource().equals(s1karte[4])){
//Ereignisprozedur
}
}
public static void main(String[] args) {
new game("Kartenspiel");
}
}
|
| #11 (permalink) | |
|
Stammbenutzer
Megabyte
Registriert seit: 05.01.2005
Fachbeiträge: 2.430
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
|
Code:
if(ae.getSource().equals(s1karte[4])){
__________________
"If you wait for a complete and perfect concept to germinate in your mind,you are likely to wait forever" DeMarco |
|
|
| #12 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
das Problem besteht aber immer noch, wenn ich den Index vom Array ändere:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test extends Frame implements ActionListener {
int x = 100;
private JButton s1karte[] = new JButton[3];
public test(String spielname) {
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent evt){
System.exit(0);
}
});
this.setTitle(spielname);
this.setSize(800, 600);
this.setBackground(new Color(0, 127, 0));
this.setLayout(null);
this.setVisible(true);
this.setResizable(false);
for(int i=0; i<=3; i++){
s1karte[i].setBounds(x,50,80,110);
x += 20;
this.add(s1karte[i]);
s1karte[i].addActionListener(this);
}
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource().equals(s1karte[0])){
//Ereignisprozedur
}
if(ae.getSource().equals(s1karte[1])){
//Ereignisprozedur
}
if(ae.getSource().equals(s1karte[2])){
//Ereignisprozedur
}
if(ae.getSource().equals(s1karte[3])){
//Ereignisprozedur
}
}
public static void main(String[] args) {
new test("Kartenspiel");
}
}
|
| #13 (permalink) | |||||||||||||||||||||||||||||||
|
Nicht angemeldet
Fachbeiträge: n/a
|
Code:
for(int i = 0;i <= 3;i++) {
s1karte[i] = new JButton("Button "+i);
...
|
||||||||||||||||||||||||||||||
| #14 (permalink) | |
|
Stammbenutzer
Megabyte
Registriert seit: 05.01.2005
Fachbeiträge: 2.430
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
|
Btw. was ich (<- Gast) noch vergessen hab :
- Klassennamen werden groß geschrieben Warum verwendest du eigentlich das null - Layout? Mit den Änderungen sollte zumindest keine ArrayIndexOutOfBoundsException mehr auftauchen. Hab jetzt auch den ActionListener getestet, er erkennt so richtig welcher Button gedrückt wurde. Aber: Das Layout sieht so noch sehr "unschön" aus
__________________
"If you wait for a complete and perfect concept to germinate in your mind,you are likely to wait forever" DeMarco |
|
|
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Buttons und awt? | foxy | Mobile Geräte | 7 | 08.07.2008 11:02 |
| Buttons | J-Mee | Softwareentwicklung | 3 | 12.08.2007 09:56 |
| 2 Buttons | Fragezeichenn | Java Basics - Anfänger-Themen | 6 | 20.03.2007 11:10 |
| JSF Buttons | mayer | Allgemeines EE | 3 | 08.08.2005 06:59 |
| Buttons | SchachFritz | AWT, Swing, JavaFX & SWT | 1 | 26.05.2005 08:21 |
| Lesezeichen |
|
|