如何配置Scala表中的列名?
我正在编写一个Scala程序来管理一个数据库,并将所有数据绘制到一个二维数组缓冲区中,其中第0行是列名,随后的行包含表中每个条目的信息。 当尝试将其放入表中时,ho=w我是否要分配列标题 语法建议将不胜感激 伪代码:如何配置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
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的要点是它们是可扩展的,所以在固定数量的列中使用它们是没有意义的。上面的代码不可能给出越界错误。异常应该告诉您它发生在哪一行。