Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置Scala表中的列名?_Scala - Fatal编程技术网

如何配置Scala表中的列名?

如何配置Scala表中的列名?,scala,Scala,我正在编写一个Scala程序来管理一个数据库,并将所有数据绘制到一个二维数组缓冲区中,其中第0行是列名,随后的行包含表中每个条目的信息。 当尝试将其放入表中时,ho=w我是否要分配列标题 语法建议将不胜感激 伪代码: Data=ArrayBuffer() Data(0)={"Name","Birthday","ID"} Data(1)={"Bob", "07/19/1986", "2354"} Data(2)={"Sue", "05/07/1980", "2355"} Data(3)={"Joe

我正在编写一个Scala程序来管理一个数据库,并将所有数据绘制到一个二维数组缓冲区中,其中第0行是列名,随后的行包含表中每个条目的信息。 当尝试将其放入表中时,ho=w我是否要分配列标题

语法建议将不胜感激

伪代码:

Data=ArrayBuffer()
Data(0)={"Name","Birthday","ID"}
Data(1)={"Bob", "07/19/1986", "2354"}
Data(2)={"Sue", "05/07/1980", "2355"}
Data(3)={"Joe", "08/12/1992", "2356"}
Data(4)={"Jim", "11/20/1983", "2357"}

我想将其放入一个表中,其中数据(0)描述列标题,随后的行描述表中的行,但我不知道如何设置行标题。

假设您谈论的是swing,如果您将表放在滚动窗格中,并根据所示的数组缓冲区创建表模型,默认情况下,第一行将作为列名。

将数据放入表中的最简单方法是使用其构造函数:

new Table (rowData: Array[Array[Any]], columnNames: Seq[_]) 
这里有点棘手的是数组不是协变的(请参阅),这意味着
数组[String]
不是
数组[Any]
的子类型。因此,您需要某种方法将一个转换为另一个:一个
map
完成这项工作

此外,要显示列名,您需要将表放在滚动窗格中

import swing._
import collection.mutable.ArrayBuffer

object Demo extends SimpleSwingApplication {

  val data = ArrayBuffer(
    Array("Name","Birthday","ID"),
    Array("Bob", "07/19/1986", "2354"),
    Array("Sue", "05/07/1980", "2355")
  )

  def top = new MainFrame {
    contents = new ScrollPane {
      contents = new Table(
        data.tail.toArray map (_.toArray[Any]),
        data.head
      )
    }
  }
}
我会给你一张桌子:


编辑:您还可以使用cast:
data.tail.toArray.asInstanceOf[Array[Array[Any]]]]]
,这比映射更有效。

您可能需要为此问题添加其他信息。我认为,即使是关于您尝试执行的操作的伪代码也可能有所帮助。不知道如何设置表模型。我为数不多的尝试导致了大量代码无法运行综合症。2.8中的语法是什么\n现在,我只是更新for循环中的单元格,因为我还没有找到更简单的方法来更新表中的数据,但这仍然给我留下了“a”、“B”、“C”、“D”等列标题,你可以参考一些例子。因此,这听起来正是我想要的,但是我使用的是数组和数组而不是数组数组。。。我不确定这是否是问题所在,但当我键入代码以显示我的缓冲区时,我得到一个ArrayIndexOutOfBounds错误,我无法理解,并且我不确定如何从该代码中提取。这是我在使用ArrayBuffers,还是我遗漏了什么?@Museless上面的代码在使用ArrayBuffers时也同样有效,尽管ArrayBuffers的要点是它们是可扩展的,所以在固定数量的列中使用它们是没有意义的。上面的代码不可能给出越界错误。异常应该告诉您它发生在哪一行。