Swing Abfrage durch JTextField nach Button betätigung

N0__ESCAPE

Mitglied
Hi! 🙂
Ich bin noch Java Anfänger und habe mehrere kleine "Programme" geschrieben.
Einen Primzahlen Berechner, einen Schaltjahr Berechner, einen Bubble Sorter und einen Taschenrechner. Da ich jetzt alles miteinander verbinden möchte und es sozusagen von einer Gui abrufen möchte habe ich jetzt mehrere Probleme:
1. Ich habe die kompletten Programme mit der Konsolen Eingabe geschrieben und möchte die Eingabe jetzt in einem JFrame.
Ich weiß aber nicht wie ich die TextEingabe im Jframe scanne...
Hier mal der Code:
Java:
public static void main(String[] args) {
       
       
       
      JFrame meinJFrame = new JFrame();
      meinJFrame.setTitle("Primzahlen Berechner");
      meinJFrame.setSize(600, 450);
      meinJFrame.setLocation(650, 350);
     

     
     
      JPanel panel = new JPanel();
      JTextArea textfeld1 = new JTextArea(2, 50);
      textfeld1.setLineWrap(true);
      textfeld1.setWrapStyleWord(true);
      textfeld1.setText("Willkommen beim Primzahlen-Berechner." + "                                                                                                    Bitte gib zwei Zahlen an, in diesem Bereich werden die Primzahlen ausgegeben.");
      JScrollPane scrollpane1 = new JScrollPane(textfeld1);    
      panel.add(scrollpane1);
      JLabel label = new JLabel("Eingabe:");
      panel.add(label);
      JTextField Eingabe = new JTextField("",15);
      Eingabe.setForeground(Color.RED);
      Eingabe.setBackground(Color.YELLOW);
      panel.add(Eingabe);
      JButton buttonOK = new JButton("OK");
      panel.add(buttonOK);
     
     
     
     
     
      JLabel label2 = new JLabel("Primzahlen:");
      panel.add(label2);
     
     
     
      JTextArea textfeld2 = new JTextArea(10, 40);
      textfeld2.setLineWrap(true);
      textfeld2.setWrapStyleWord(true);
      textfeld2.setText("");
      JScrollPane scrollpane2 = new JScrollPane(textfeld2);    
      panel.add(scrollpane2);
     
     
     
     
     
     
     
      meinJFrame.add(panel);
      meinJFrame.setVisible(true);
     
     
       
       
       
       
       
       
        Scanner scanner = new Scanner(System.in);
//        String string1 = Eingabe.getText();
//        System.out.println(string1);
        int number = scanner.nextInt();
        int input2 = scanner.nextInt();
        scanner.close();
       
        for (number++; number <= input2;number = number+1)
        {
       
            boolean isPrimzahl = true;
            for (int i = 2; i <= number - 1; i = i+1)
            {
                if(number%i == 0 )
                {
                    isPrimzahl = false;
                }   
            }
           
            if (isPrimzahl)
            {

                String tmp = textfeld2.getText();
                textfeld2.setText(tmp + " " + number);
                textfeld2.setEditable(false);
//                System.out.println("+ " + number + "  ist eine Primzahl +");
            }
            else
            {

//                System.out.println(number + " ist keine Primzahl");
            }
        }

Wenn man Das Programm startet funktioniert alles, auch die Ausgabe erfolgt im Fenster.
Lediglich die Eingabe muss man noch in der Konsole machen und ich weiß nicht wie ich das auch umleite. (möchte dass man die zahlen in die zeile eingibt und dann ok drückt..)

Ich hoffe ihr könnt mir helfen, dass ist bislang mein größtes Problem 🙂
vg
N0__ESCAPE
 
Ich verstehe es so, dass die Werte von dem Benutzer eingegeben werden sollen. Hierfür musst du dem Button zunächst einen ActionListener hinzufügen. Wird dieser gedrückt, kannst du die Werte der Textfelder enstprechend weiterverarbeiten. Hier der Ausschnitt.

Java:
JPanel panel = new JPanel();
JTextField field1 = new JTextField();
JTextField field2 = new JTextField();

panel.add(field1);
panel.add(field2);

buttonOK.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                int number1 = Integer.valueOf(field1.getText());
                int number2 = Integer.valueOf(field2.getText());

Deinen anderen Programmteil kannst du dann mit den Werten aufrufen.
 
Zuletzt bearbeitet:
Jup, genau so!
habs in der Zwischenzeit selbst hinbekommen, hier mal der Code vlt interressierts ja jemanden:
Code:
JFrame meinJFrame = new JFrame();
          meinJFrame.setTitle("Primzahlen Berechner");
          meinJFrame.setSize(600, 450);
          meinJFrame.setLocation(650, 350);
          meinJFrame.setResizable(false);
         
          JPanel panel = new JPanel();
          JTextArea textfeld1 = new JTextArea(3, 50);
          textfeld1.setLineWrap(true);
          textfeld1.setWrapStyleWord(true);
          textfeld1.setEditable(false);
          textfeld1.setText("Willkommen beim Primzahlen-Berechner." + "\n" + "Bitte gib zwei Zahlen an, in diesem Bereich werden die Primzahlen ausgegeben." + "\n" + "Zahlen getrennt mit Komma und ohne Lehrzeichen angeben!");
          JScrollPane scrollpane1 = new JScrollPane(textfeld1);    
          panel.add(scrollpane1);
          JLabel label = new JLabel("Eingabe:");
          panel.add(label);
          JTextField Eingabe = new JTextField("",15);
          Eingabe.setForeground(Color.RED);
          Eingabe.setBackground(Color.YELLOW);
          panel.add(Eingabe);
          JButton buttonOK = new JButton("OK");
          panel.add(buttonOK);
         
         
          JLabel label2 = new JLabel("Primzahlen:");
          panel.add(label2);
         
         
         
          JTextArea textfeld2 = new JTextArea(10, 40);
          textfeld2.setLineWrap(true);
          textfeld2.setWrapStyleWord(true);
          textfeld2.setEditable(false);
          textfeld2.setText("");
          JScrollPane scrollpane2 = new JScrollPane(textfeld2);    
          panel.add(scrollpane2);
         
          meinJFrame.add(panel);
          meinJFrame.setVisible(true);
         

            buttonOK.addActionListener(new java.awt.event.ActionListener() {
                // Beim Drücken des Menüpunktes wird actionPerformed aufgerufen
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    // Dateiauswahldialog wird erzeugt...
                     boolean Abfrage = true;
                    
                     String inputText = Eingabe.getText();
                     String[] zahlen = inputText.split(",");
                     if (zahlen.length < 2)
                     {
                         textfeld2.setText("Falsche Eingabe");
                     }
                     else
                     {
                         int number = Integer.parseInt(zahlen[0]);
                         int input2 = Integer.parseInt(zahlen[1]);

                        
                         for (number++; number <= input2;number = number+1)
                         {
                        
                             boolean isPrimzahl = true;
                             for (int i = 2; i <= number - 1; i = i+1)
                             {
                                 if(number%i == 0 )
                                 {
                                     isPrimzahl = false;
                                 }   
                             }
                            
                             if (isPrimzahl)
                             {

                                 String tmp = textfeld2.getText();
                                 textfeld2.setText(tmp + " " + number);
                                 textfeld2.setEditable(false);
//                                 System.out.println("+ " + number + "  ist eine Primzahl +");
                             }
                             else
                             {

//                                 System.out.println(number + " ist keine Primzahl");
                             }
                         }   
                     }
                }
          });
 

Neue Themen


Zurück
Oben