2011-11-11 6 views
0

Imは、1つの数値のパーセントを別の数値の中で見つけるパーセンテージプログラムを作成しようとしています。私は2つのユーザー入力番号を取得するjtextfield jbuttonをヒットし、答えが結果としてリストされた別のjtextfieldに表示されるようにします。どのようにそれを行うにはどのようなアイデアを私はそれがアクションリスナーを必要と知っているが、私はそこから行くべきか分からない。ここで私は私が私がちょうど仕事をするためにアクションリスナーを取得する必要はありません知りたいものを印刷するために持っているものです。GUI Java - 回答を得るために2人のユーザー入力番号を使用する方法

package GUI; 

import javax.swing.*; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 


@SuppressWarnings("serial") 
public class WeightGUI extends JFrame{ 
private JLabel label1; 
private JTextField field1; 
private JLabel label2; 
private JTextField field2; 
private JLabel label3; 
private JTextField field3; 
private JLabel label4; 
private JTextField field4; 
private JButton button1; 
private JButton button2; 
private JButton button3; 
public WeightGUI() { 
    super("Percentage Weight Loss Calculator"); 
    setLayout(new FlowLayout()); 

    label1 = new JLabel ("Starting Weight "); 
    field1 = new JTextField ("Type"); 
    label2 = new JLabel ("Last Week Weight"); 
    field2 = new JTextField ("Type"); 
    label3 = new JLabel ("Current Weight"); 
    field3 = new JTextField ("Type"); 
    label4 = new JLabel ("Percentage Lost"); 
    field4 = new JTextField ("Results"); 
    button1 = new JButton (" Calculate Percent Total"); 
    button2 = new JButton (" Calculate Percent Week"); 
    button3 = new JButton (" Calculate Percent from last weight"); 
    label1 = new JLabel("Starting Weight"); 
    add(label1); 

    field1 = new JTextField("Type"); 
    add (field1); 

    label2 = new JLabel("Last Week Weight"); 
    add(label2); 

    field3 = new JTextField(10); 
    add (field2); 

    label3 = new JLabel("Current Weight"); 
    add(label3); 

    field3 = new JTextField("Type"); 
    add (field3); 

    label4 = new JLabel("Percentage Lost"); 
    add(label4); 

    field4 = new JTextField("Results"); 
    field4.setEditable(false); 
    add (field4); 

    button1 = new JButton ("Calculate Total Percent"); 
    add(button1); 

    button2 = new JButton ("Calculate Percent from last Weight"); 
    add(button2); 

    button3 = new JButton ("Calculate Weekly Percent"); 
    add(button3); 

    thehandler handler = new thehandler(); 
    button1.addActionListener(handler); 

    thehandler handler1 = new thehandler(); 
    button2.addActionListener(handler1); 

    thehandler handler2 = new thehandler(); 
    button3.addActionListener(handler2); 
} 

private class thehandler implements ActionListener { 

    public void actionPerformed (ActionEvent e){ 

     int sw; 
     int lw; 
     int cw; 
     double weight = 0 ; 
     String inputString; 
     inputString = field1.getText(); 
     inputString = field2.getText(); 
     inputString = field3.getText(); 
     sw = Integer.parseInt(inputString); 
     lw = Integer.parseInt(inputString); 
     cw = Integer.parseInt(inputString); 
      if(e.getSource() == button1) { 
       weight = (sw - cw)/sw; 
      } 
      else if(e.getSource() == button2) { 
       weight = (lw - cw)/sw; 
      } 
      else if(e.getSource() == button3){ 
       weight = (lw - cw)/ lw; 



    } 



    } 
} 


} 
+0

どうすればうまくいかないか教えてください。詳細*は重要です。がんばろう。 –

+0

また、変数の名前を変更して理にかなった名前を付けることもできます。今から1週間後に "field4"という名前の変数、または "resultsField"という名前の変数をデバッグするのは簡単ですか? –

答えて

1

コードの主な問題は、結果を保持するJTextFieldのテキストを設定していないことです。これは、このJTextFieldでsetText(...)を呼び出し、結果を表すStringを渡すだけです。 FocusGeneratorがフィールドのすべての内容を選択するように、すべてのテキストフィールドにFocusListenerを追加しない限り、JTextFieldsのナンセンステキスト "Type"を削除することもできます。

上記のコメントに記載されているように、変数の名前を変更することもできます。

0

結果を適切なフィールドに設定するには、setText()メソッドを使用する必要があります。しかし、私はあなたに質問があります:あなたは、2人のユーザーが同じ時間に入力を設定したと言いました。言い換えれば、ユーザーはネットワーク上にあり、それを使用しています!

+0

Nah、彼はちょうど1つ以上のJTextFieldから抽出されたテキストを試したいと思っています。 –

関連する問題