2

我是新手,遇到了问题。我使用包含 30 个 JTextField 的 netbeans 设计视图创建了一个 gui。然后将这些文本字段排列成 3 列,每列 10 个文本字段。所以这个想法是让用户能够在文本字段的 2 列中输入数字,然后将前 2 列的相应行相乘,结果将显示在文本字段的第三列中。到目前为止我有

    float a1 = Float.parseFloat(text1.getText()) //This 30 times one for each field

    float [] cola; 
    cola = newfloat[10] //I did this 3 times to create 3 columns

    cola[0] = a1 // I did this to place the variables in the columns
    cola[1] = a2 // cola and colb for retrieved from user and colc for results

这继续创建3列......然后我将它们相乘在一起......

     result = (colla*colb);
    colc.setText(String.valueOf(result));

但这不起作用。我想要的结果是让我在“colc”中排列的 10 个文本字段成为 2 列文本字段的用户输入的产物。我想我在处理这个问题时都错了,或者只是缺少一行代码?任何帮助将非常感激!

4

3 回答 3

4

对于您在评论中提到的问题(为了清楚起见,我将在这里重复,因为评论中的代码不是很悦目):

public static void main(String[] args) { 
  int arr[] = {9,9,9}; 
  int arr1[] = {9,9,9}; 
  int sum[] = {0,0,0}; 
  for (int i=0; i < arr.length; i++) 
    sum = arr[i] + arr1[i]; 
  System.out.println(sum); 
}

这有一个编译错误,还有一件事你可能也不想要。

  1. sum = arr[i] + arr1[i];不会编译。如果您花一些时间考虑一下……在左侧,您有一个数组(长度为 3 的 int 数组),并且您尝试在右侧为此分配一个 int。你可能想要做的是sum[i]=arr[i] + arr1[i];
  2. System.out.println(sum);打印出乱码,因为数组的toString. 您可能想要使用的是Arrays#toString方法

这是相当基本的数组操作,因此您可能想再次阅读 Java 数组教程。

于 2012-05-03T06:09:28.823 回答
2

一次解决一个问题。从添加一列数字的工作示例开始。更改N2, 并更改GridLayout(0, 1)GridLayout(1, 0); 现在你有一个可以添加的面板。将其中的十个添加到JPanelwith 中GridLayout(0, 1)瞧!

查看GridLayoutAPI 以获取详细信息。

于 2012-05-03T05:59:47.870 回答
0

使用GridLayout而不是Flowlayout,这是默认设置。如果发生错误,请编辑您的问题以包含SSCCE,我将根据我的知识提出建议。

于 2012-05-03T06:14:57.463 回答