2016-10-16 3 views
0

Ich bin ein kleines Programm in Java Eclipse Windowbuilder erstellen. Der Benutzer gibt die linke Seite (LHS) und die rechte Seite (RHS) der Ungleichheitsangabe ein, so dass LHS < (m/n) < RHS. Das Programm gibt die niedrigsten ganzzahligen Werte m und n aus, die die Bedingung erfüllen. Ich habe die Logik/Code erforderlich, um dies zu tun, aber ich bin mir nicht sicher, wie die Benutzerwerte von LHS und RHS in Windowbuilder erhalten. Das Textfeld links heißt lhs und das Textfeld rechts heißt rhs, das Sie im Bild unten sehen können. Wie kann ich die Eingaben des Benutzers für diese erhalten (als doppelter Datentyp)? Wenn der Benutzer diese beiden Werte eingibt, lege ich die Code-Logik unter actionPerformed ab. Vielen Dank!So erhalten Sie Benutzereingaben als Double, und führen Sie dann Berechnungen mit ihm

JButton btnCompute = new JButton("Compute"); 
     btnCompute.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
      } 

enter image description here

package ntheory; 

import java.awt.EventQueue; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 
import javax.swing.JLabel; 
import javax.swing.JButton; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

public class Ntheory { 

    private JFrame frame; 
    private JTextField lhs; 
    private JTextField rhs; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        Ntheory window = new Ntheory(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 
    public Ntheory() { 
     initialize(); 
    } 

    /** 
    * Initialize the contents of the frame. 
    */ 
    private void initialize() { 
     frame = new JFrame(); 
     frame.setBounds(100, 100, 450, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().setLayout(null); 

     lhs = new JTextField(); 
     lhs.setBounds(6, 46, 68, 26); 
     frame.getContentPane().add(lhs); 
     lhs.setColumns(10); 

     JLabel label = new JLabel("<"); 
     label.setBounds(86, 51, 10, 16); 
     frame.getContentPane().add(label); 

     JLabel label_1 = new JLabel("<"); 
     label_1.setBounds(159, 51, 10, 16); 
     frame.getContentPane().add(label_1); 

     rhs = new JTextField(); 
     rhs.setColumns(10); 
     rhs.setBounds(181, 46, 68, 26); 
     frame.getContentPane().add(rhs); 

     JLabel lblmn = new JLabel("(m/n)"); 
     lblmn.setBounds(108, 51, 61, 16); 
     frame.getContentPane().add(lblmn); 

     JButton btnCompute = new JButton("Compute"); 
     btnCompute.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
      } 
     }); 
     btnCompute.setBounds(261, 46, 117, 29); 
     frame.getContentPane().add(btnCompute); 
    } 
} 
+0

Mögliches Duplikat von [Wie Wert zum Abrufen von JTextField in Java Swing?] (Http://stackoverflow.com/questions/5752307/how-to-retrieve -value-from-jtextfield-in-java-swing) –

+0

Zweites Duplikat. http://stackoverflow.com/questions/5769669/convert-string-to-double-in-java –

Antwort

1
JButton btnCompute = new JButton("Compute"); 
btnCompute.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     try { 
      double leftValue = Double.parseDouble(lhs.getText()); 
      double rightValue = Double.parseDouble(rhs.getText()); 
      // Do your stuff with it. 
     } 
     catch (NumberFormatException ex) { 
      // Do stuff if the input is not a number. 
     } 
    } 
} 
+0

Vielen Dank! Weißt du zufällig, wie ich etwas ausgeben kann? Sagen Sie zum Beispiel Wenn ich leftValue und rightValue hinzufügen und dies dann dem Benutzer anzeigen wollte? Doppelsumme = leftValue + rightValue; In der Befehlszeile würde ich System.out.println verwenden, aber ich bin neu in der Verwendung von GUI für Java. Also, wie kann ich ausgeben? :) – Programmer

+0

Wenn es eine Methode namens 'getText()' gibt, dann rate mal, welche andere Methode es gibt. Für zukünftige Referenz möchten Sie vielleicht nur die API betrachten: https://docs.oracle.com/javase/8/docs/api/javax/swing/JTextField.html –

+0

giveText() haha ​​!!! – Programmer

Verwandte Themen