0

現在、2つのJTextFieldから値を読み込み、1ずつインクリメントして値の範囲を見つけ、その値をDouble配列に書き込もうとしています。しかし、私が行った方法はうまくいかないようで、Google/インターネットで解決策を見つけることができません。

これまでの私のコードは次のとおりです。

package textfieldtodouble;

import java.awt.*;
import java.util.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.Line2D;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyVetoException;
import javax.swing.*;

public class TextFieldToDouble {

JFrame frame = new JFrame();
JPanel panel = new JPanel();
static JTextField maxValue1 = new JTextField(20);
static JTextField maxValue2 = new JTextField(20);
JButton btn1 = new JButton("To Double Array");
double x[];
double value1;
double value2;

void buildTheGUI() {
    panel.add(maxValue1, BorderLayout.NORTH);
    panel.add(btn1, BorderLayout.SOUTH);
    panel.add(maxValue2, BorderLayout.SOUTH);
    btn1.addActionListener(new toDouble());
    frame.add(panel);
    frame.setSize(300, 300);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

TextFieldToDouble() {
    buildTheGUI();
}

public static void main(String[] args) {
    new TextFieldToDouble();
}

class toDouble implements ActionListener {

    public void actionPerformed(ActionEvent event) {
        value1 = Double.parseDouble(maxValue1.getText());
        value2 = Double.parseDouble(maxValue2.getText());

        for (int i = 0; i < value1; i++) {
            System.out.println(i);
            x[i] = value2 + i;
            value2 ++;

        }
    }
}
}

前もって感謝します。:)

4

2 に答える 2

2

アレイを初期化していませんx

value1 = Double.parseDouble(maxValue1.getText());
value2 = Double.parseDouble(maxValue2.getText());

int length = (int) value1;
x = new double[length];

for(int i = 0; i < length; i++)
{
    System.out.println(i);
    x[i] = value2 + i;
    value2 ++;
}
于 2013-03-05T19:15:55.320 に答える
0

maxValue1が最小値で、maxValue2が範囲内の最大値であることを意味しますか?もしそうなら、これを試してください:

    public void actionPerformed(ActionEvent event) {
        value1 = Double.parseDouble(maxValue1.getText());
        value2 = Double.parseDouble(maxValue2.getText());

        int length = (int) value2 + 1 - (int) value1;
        x = new double[length];

        for(int i = 0; i < length; i++)
        {
            x[i] = value1 + i;
            System.out.println(x[i]);
        }   
于 2014-07-12T15:58:51.437 に答える