Wie kann ich bei Druck auf Button 3 eine Zahl ins Textfeld eintragen?

Hallo,

ich würde es gerne schaffen, dass, wenn ich Button3 drücke, dieser die 0 einträgt.

Hat jemand von euch eine Idee? Das war bisher mein Ansatz:

inputField.setText(Integer.toString(a));

a ist natürlich definiert in diesem Code:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CopyOfCopyOftextapp2 extends JFrame implements ActionListener {
  private JTextField inputField;
  private JTextArea outputArea;
  private JButton submitButton;
  private JButton submitButton2;
  private JButton submitButton3;

  public CopyOfCopyOftextapp2() {
    JLabel inputLabel = new JLabel("Bitte geben Sie eine Zahl ein:");
    inputField = new JTextField(10);
    submitButton = new JButton("Eingabe");
    submitButton.addActionListener(this);
    submitButton2= new JButton("Beenden");
    submitButton2.addActionListener(this);
    submitButton3= new JButton("0");
    submitButton3.addActionListener(this);
    outputArea = new JTextArea(100, 160);
    JScrollPane outputPane = new JScrollPane(outputArea);
    Container container = getContentPane();
    container.setLayout(new FlowLayout());
    container.add(inputLabel);
    container.add(inputField);
    container.add(submitButton);
    container.add(submitButton2);
    container.add(submitButton3);
    container.add(outputPane);

    setSize(Toolkit.getDefaultToolkit().getScreenSize());

    var subBox = new JPanel(new GridLayout(1, 2));
    subBox.add(new JLabel("2"));
    subBox.add(new JLabel("3"));
    var box = new JPanel(new GridLayout(2, 1));
    box.add(new JLabel("1"));
    box.add(subBox);

    GraphicsDevice device;
    device = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0];
    setUndecorated(true);
    device.setFullScreenWindow(this);
    setTitle("Text App");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
    setVisible(true);
  }

  public static void main(String[] args) {
    CopyOfCopyOftextapp2 app = new CopyOfCopyOftextapp2();
  }

  public void actionPerformed(ActionEvent e) {
    // Neue Parameter hinzugefügt
    if (e.getSource() == this.submitButton) {
      int inputNumber = Integer.parseInt(inputField.getText());

      switch (inputNumber) {
        case 1:
          String text = "Sie haben die Zahl 1 eingegeben.";
          outputArea.setText(text);
          break;
        case 2:
          String text2 = "Sie haben die Zahl 2 eingegeben.";
          outputArea.setText(text2);
          break;
        default:
          String text3 = "Sie haben die falsche Zahl eingegeben.";
          outputArea.setText(text3);
      }
    }
    else if (e.getSource() == this.submitButton2) {
      int result = JOptionPane.showConfirmDialog(null, "Wollen sie das Programm wirklich beenden", "Programm beenden", JOptionPane.YES_NO_OPTION);

      switch (result) {
        case JOptionPane.YES_OPTION:
          System.exit(0);
        case JOptionPane.NO_OPTION:
      }

      if (e.getSource() == this.submitButton3) {}
    }
  }
}
Java, Programmiersprache
Buttons postion Anpassen java?

hallo, ich würde gerne buttons, die ich erzeugt habe in der Position ändern, wie mach ich das ?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class CopyOftextapp2 extends JFrame implements ActionListener {

    private JTextField inputField;
    private JTextArea outputArea;
    private JButton submitButton;
    private JButton submitButton2;
 


    

    public CopyOftextapp2() {
        
       
        
      
        JLabel inputLabel = new JLabel("Bitte geben Sie eine Zahl ein:");
        inputField = new JTextField(10);
        
        submitButton = new JButton("Eingabe");
        submitButton.addActionListener(this);
        
        
         submitButton2= new JButton("Beenden");
         submitButton2.addActionListener(this);
         
   

         
        
        outputArea = new JTextArea(100, 160);
        JScrollPane outputPane = new JScrollPane(outputArea);
       

        Container container = getContentPane();
        container.setLayout(new FlowLayout());
        container.add(inputLabel);
        container.add(inputField);
        container.add(submitButton);
        container.add(submitButton2);
      

        container.add(outputPane);
        setSize( Toolkit.getDefaultToolkit().getScreenSize() );
        
        submitButton13.setBounds( 100, 100, 600, 250 );
        setBounds( 20, 20, 70, 100 );
        
        
        


       GraphicsDevice device;
             device=GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0];
             setUndecorated( true );
             device.setFullScreenWindow(this);
 
        
       
        
        setTitle("Text App");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }
 
 public static void main(String[] args) {
        CopyOftextapp2 app = new CopyOftextapp2();
    }
    public void actionPerformed(ActionEvent e) {
      // Neue Parameter hinzugefügt
      if(e.getSource() == this.submitButton){
        int inputNumber = Integer.parseInt(inputField.getText());
      
         switch ( inputNumber ) {
       
         case 1:
         String text = "Sie haben die Zahl 1 eingegeben.";
         outputArea.setText(text);
         break;
        
         case 2:
         String text2 = "Sie haben die Zahl 2 eingegeben.";
         outputArea.setText(text2);
         break;
        
         default:
         String text3 = "Sie haben die falsche Zahl eingegeben.";
         outputArea.setText(text3);
        
       }
   }
   else if(e.getSource() == this.submitButton2){
     

     int result = JOptionPane.showConfirmDialog(null,"Wollen sie das Programm wirklich beenden", "Programm beenden", JOptionPane.YES_NO_OPTION);
     switch(result){
     case JOptionPane.YES_OPTION:
     System.exit(0);
     case JOptionPane.NO_OPTION:


     }
   }
}
}
Java, Programmiersprache
Hintergrund in Java GUI?

Heyho,

Ich möchte gerne in meiner GUI einen Hintergrund einfügen, da es sonst so trostlos wirkt. Es soll das Bild "GameBackground.jpg" genutzt werden.

Hier ist der Code:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*; 
import ch.aplu.turtle.*;

/**
 *
 * Ein Spiel mit GUI
 *
 * @version 1.0 vom 19.05.2023
 * @abraham_oez 
 */

public class frame extends JFrame {
  private Button bSpielstarten1 = new Button();
  // Anfang Attribute
  private Button bHowtoplay1 = new Button();
  private Button bCopyright1 = new Button();
    private JMenu jMenuBar1_File = new JMenu("Spiel");
      private JMenu jMenuBar1_File_New = new JMenu("Neues Spiel");
  
  private JLabel Label1 = new JLabel();
  // Ende Attribute
  public frame() { 
    // Frame init
    super();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 746; 
    int frameHeight = 562;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setTitle("Games by Abie D. Tate");
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    setUndecorated(false);
    cp.setBackground(new Color(0xC0C0C0));
    // Anfang Komponenten
    
    bSpielstarten1.setBounds(288, 104, 176, 48);
    bSpielstarten1.setLabel("Spiel starten");
    bSpielstarten1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bSpielstarten1_ActionPerformed(evt);
      }
    });
    cp.add(bSpielstarten1);
    bHowtoplay1.setBounds(285, 224, 176, 48);
    bHowtoplay1.setLabel("How to play");
    bHowtoplay1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bHowtoplay1_ActionPerformed(evt);
      }
    });
    cp.add(bHowtoplay1);
    bCopyright1.setBounds(288, 352, 176, 48);
    bCopyright1.setLabel("Lizenzen");
    bCopyright1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bCopyright1_ActionPerformed(evt);
      }
    });
    cp.add(bCopyright1);

    // Ende Komponenten
    setVisible(true);
  }  
  
  
  
  public static void main(String[] args) {
    new frame();
  }  
  
  // Anfang Methoden
  public void bSpielstarten1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    
  } 

  public void bHowtoplay1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    
  }  
  
  //Nachdem der Button 'Copyright' gedrueckt wurde, wird die Klasse 'CopyrightFrame' geoeffnet in einem neuen Fenster
  public void bCopyright1_ActionPerformed(ActionEvent evt) {
    
    if (evt.getSource() == bCopyright1) {
      CopyrightFrame copyrightFrame = new CopyrightFrame();
    } 
    
  }  

} 

Java, Programmiersprache, Swing, Java Swing
Informatik (Java) Zwei Frames mit dem selben Konstruktor?

Hey, ich hab eine Aufgabe bekommen, welche ich aber leider nicht wirklich gut lösen kann.
Die Aufgabe besteht darin, dass die Klasse mit JFrame erweitert werden soll und das der Actionlistener implementiert werden soll. Der Frame soll dabei im FlowLayout aus 2 Button bestehen mit den Aufschriften "Weiter" und "Ende".

Wird "Weiter" gedrückt = Erste Frame wird geschlossen und ein zweiter Frame mit NUR dem Button "Ende" wird geöffnet.

Wird "Ende" gedrückt = Alle Frames schließen sich und das Programm wird beendet.

Die beiden Frames sollen dabei mit dem selben Konstruktor erstellt werden.
Das Problem bei mir ist, dass ich es nicht schaffe beim 2. Frame nur "Ende" zu stehen haben.

Kann mir da bitte wer helfen??

Hier ist das, was ich bisher versucht habe:

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class zweifenster extends JFrame implements java.awt.event.ActionListener {

  JButton w1;

  JButton e1;

  JPanel p;

  JLabel l;

  public zweifenster(){

    super();

  this.setVisible(true);

  this.setSize(400, 200);

  p = new JPanel();

  l = new JLabel();

  w1 = new JButton("Weiter");

  e1 = new JButton("Ende");

  w1.addActionListener(this);

  e1.addActionListener(this);

  p.add(w1);

  p.add(e1);

  this.add(p);

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  public void actionPerformed(ActionEvent e) {

  if(e.getSource()==w1) {

    zweifenster frr = new zweifenster();

    this.dispose(); 

   }

    if(e.getSource()==e1) {

      System.exit(0);

    }

  }

  public static void main (String[] args) {

    zweifenster fr = new zweifenster();

}

}

Java, Programmiersprache, Swing, Java Swing

Meistgelesene Fragen zum Thema Java