2016-10-16 5 views
0

JavaのEclipseのwindowbuilderで小さなプログラムを作成しています。ユーザーは、LHS <(m/n)< RHSとなるように、不等式文の左辺(LHS)と右辺(RHS)を入力します。プログラムは、条件を満たす最低の整数値mとnを出力します。私はこれを行うために必要なロジック/コードを持っていますが、私はwindowbuilderのLHSとRHSのユーザ値を取得する方法がわかりません。左側のテキストフィールドはlhsと呼ばれ、右側のテキストフィールドはrhsと呼ばれ、下の画像で確認できます。どのようにしてこれらのユーザーの入力を得ることができますか(ダブルデータ型)?ユーザーがこれら2つの値を入力すると、actionPerformedの下にコードロジックが配置されます。ありがとう!ユーザー入力を二重にして計算する方法

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

の可能性のある重複した[のJava SwingでのJTextFieldから値を取得する方法?](http://stackoverflow.com/questions/5752307/how-to-retrieve -value-from-jtextfield-in-java-swing) –

+0

2番目の複製。 http://stackoverflow.com/questions/5769669/convert-string-to-double-in-java –

答えて

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

ありがとう!どのように私が何かを出力できるか知っていますか?たとえば、leftValueとrightValueを追加して、これをユーザーに表示したいのですか? double sum = leftValue + rightValue; コマンドラインではSystem.out.printlnを使用しますが、私はGUI用のJavaを初めて使用しています。どうすれば出力できますか? :) – Programmer

+0

'getText()'と呼ばれるメソッドがある場合は、ほかにどのようなメソッドがあるかを推測してください。将来の参照のため、APIを見てみるとよいでしょう。https://docs.oracle.com/javase/8/docs/api/javax/swing/JTextField.html –

+0

giveText()haha !!! – Programmer

関連する問題