如何将字符串从一个JTextField转换为双阵列

问题描述:

我目前试图从两个JTextField中值读取,通过递增1,然后将值写入一个双阵列找到值的范围。不过我做的方式似乎并没有工作,我无法找到谷歌/ Internet上的解决方案。如何将字符串从一个JTextField转换为双阵列

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

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

     } 
    } 
} 
} 

在此先感谢。 :)

+3

我很高兴你能不能找到谷歌互联网:)反正功课的解决方案,您的数组x未初始化。你知道如何在数组中使用'new'吗? – vikingsteve 2013-03-05 19:09:54

+0

我有一个想法,但我需要知道我的数组的大小我不会? – sam 2013-03-05 19:22:47

+0

是的,确切地说。否则,你可以使用'名单'具有动态调整大小。 – vikingsteve 2013-03-06 08:00:55

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

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