【问题标题】:How to convert a String from a JTextField to a double array如何将字符串从 JTextField 转换为双精度数组
【发布时间】:2013-03-05 19:08:57
【问题描述】:

我目前正在尝试从两个 JTextField 中读取值,通过递增 1 来查找值的范围,然后将值写入 Double 数组。但是我所做的方式似乎不起作用,我在 Google/Internet 上找不到解决方案。

到目前为止,这是我的代码:

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 ++;

        }
    }
}
}

提前致谢。 :)

【问题讨论】:

  • 我很高兴你在谷歌互联网上找不到作业解决方案:) 无论如何,你的数组 x 没有初始化。你知道如何将new 与数组一起使用吗?
  • 我有一个想法,但我需要知道我的数组的大小,不是吗?
  • 是的,完全正确。否则,您可以使用具有动态大小的List&lt;Double&gt;

标签: java arrays swing double jtextfield


【解决方案1】:

你还没有初始化数组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 ++;
}

【讨论】:

    【解决方案2】:

    你的意思是 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]);
            }   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多