Gui

  • hab ne frage will ein einfachen button erstellen und na ja geht nicht ... button wird 2 mal ausgeführt will aber zwei butons im geichen frame...



    was ist mein fehler und warum wird in diesem bsp. die witerklick funktion also der listener bzw die aktion vom "buton" nichtmehr ausgeführt seitdem "mbutton" dazu geschrieben habe.

    danke ltheonel



    Java-Quellcode

    1. import javax.swing.*;
    2. import java.awt.event.*;
    3. public class SuperGUI implements ActionListener {
    4. JButton button;
    5. JButton mbutton;
    6. public void los() {
    7. JFrame frame = new JFrame();
    8. button = new JButton("klick mich");
    9. mbutton = new JButton("klick mich");
    10. button.addActionListener(this);
    11. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    12. frame.getContentPane().add(button);
    13. frame.getContentPane().add(mbutton);
    14. frame.setSize(300,300);
    15. frame.setVisible(true);
    16. }
    17. public void actionPerformed(ActionEvent event) {
    18. button.setText("Ich wurde gedrückt");
    19. }
    20. public static void main(String[] args){
    21. SuperGUI gui = new SuperGUI();
    22. SuperGUI mgui = new SuperGUI();
    23. gui.los();
    24. mgui.los();
    25. }
    26. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ltheonel ()

  • 1. d0nut hat völlig recht. Immerhin willst du Hilfe. Da könntest du denen, die dir antworten sollen, auch etwas entgegenkommen. Ich musste deine Sätze mehrmals lesen, damit ich verstandt, was du meinst. Zum Einrücken des Codes hat sich d0nut bereits geäußert.
    2. Überlege dir dringend, ob du für die Listener der Buttons nicht separate Klassen machst.
    3. Das Problem ist, dass der 2. Button direkt über dem 1. Button liegt. Nachdem ich einen LayoutManager ergänzt habe, sind auch beide Buttons zu sehen. Siehe dazu:
    galileodesign.de/openbook/javainsel5/javainsel15_009.htm

    Hier der Code:

    Quellcode

    1. import javax.swing.*;
    2. import java.awt.FlowLayout;
    3. import java.awt.event.*;
    4. public class SuperGUI implements ActionListener {
    5. JButton button;
    6. JButton mbutton;
    7. public void los() {
    8. JFrame frame = new JFrame();
    9. button = new JButton("klick mich 1");
    10. mbutton = new JButton("klick mich 2");
    11. button.addActionListener(this);
    12. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    13. frame.getContentPane().setLayout(new FlowLayout());
    14. frame.getContentPane().add(button);
    15. frame.getContentPane().add(mbutton);
    16. frame.setSize(300,300);
    17. frame.setVisible(true);
    18. }
    19. public void actionPerformed(ActionEvent event) {
    20. button.setText("Ich wurde gedrückt");
    21. }
    22. public static void main(String[] args) {
    23. SuperGUI gui = new SuperGUI();
    24. SuperGUI mgui = new SuperGUI();
    25. gui.los();
    26. mgui.los();
    27. }
    28. }
    Alles anzeigen


    Ich hoffe ich konnte dir helfen.
  • :P Großes Danke an Hafner, der mir den Code geschrieben hat und auch an D0nut, der mir auch schon oft geholfen hat ;)...
    Das mit dem Einrücken werde ich ab heute beherzigen und ich werde ab jetzt auf meinen Satzbau achten - ich versuche es zumindest :P

    Das ich die Listener in eine seperate Klasse mache, ist eine gute Idee.
    Danke für die Hilfe und wünsche noch einen schönen Abend,

    ltheonel