我设置了三个一维数组:

 String [] columnnames = {"Item", "Volume of Item (Cubic Feet)"};

 String [] livingroomitems = {"Articial Plant/Hall Tree", "Bar Portable", "Bench", "Bookcase", "Bookshelves", "Chair,Arm", "Chair,Occasional",
          "Chair,Overstuffed", "Chair,Recliner", "Chair, Rocker", "Chair, Straight", "Clock, Grandfather*", "Computer",
          "Desk, Winthrop", "Desk, Secretary", "Desk, Office", "Desk, Roll Top", "Entertainment Center", "Fireplace Equipment",
          "Futon, Single", "Futon, Double", "Futon, Queen", "Futon, King", "Lamp, Floor", "Magazine Rack", "Music Cabinet",
          "Ottoman", "Piano, Baby Grand*", "Piano, Parior Grand*", "Piano, Spinet", "Rugs, Large", "Rugs, Small", "Sofa, Large",
          "Sofa, Love Seat", "Sofa, Sectional", "Sofa, Hideabed", "Stereo Components", "Stereo Speakers", "Table, Coffee",
          "Table, End or Nest", "Table, Sofa", "TV Big Screen*", "TV Console", "TV Model", "TV Stand", "VCR", "Chandelier*"};

 int [] livingroomdata = {6, 15, 5, 20, 5, 10, 15, 25, 25, 25, 5, 20, 10, 20, 35, 30, 30, 30, 5, 40, 60, 65, 70, 3, 2, 10, 5, 70, 80, 60, 10,
        5, 50, 35, 30, 50, 10, 10, 10, 5, 10, 40, 20, 5, 3, 2, 10 };


我了解通常,我必须创建一个二维ObjectVector才能将livingroomitemslivingroomdata并排添加到JTable中。但是,我想将livingroomdata保留为int,以便以后可以处理数据。有没有一种方法可以将一维数组逐列地放入JTable,这样我就不必更改数据类型了?

最佳答案

我想将livingroomdata保留为int,以便以后可以处理数据。


所有数据操作都应通过TableModel完成。您可以使用诸如getValueAt()和setValueAt()之类的方法来处理数据。然后,当数据更改时,JTable将立即反映更改。

您永远不要更改阵列中的数据。 TableModel将不知道更改,而表将永远不会显示更改的数据。

如果您需要在JTable范围之外操作数据,即您不希望更改反映在表中,则应该扩展DefaultTableModel并创建一个将返回所有int值的getVolumeValues()方法用于数组中的TableModel。


  是否有可能将一维数组逐列排成JTable


话虽如此,您最初可以使用addColumn(...)方法用数组中的数据填充DefaultTableModel。数据将被从Array复制到DefaultTableModel所使用的Vector,因此您永远不要再次引用Array数据(如果您的表是可编辑的),因为数据可能已更改。

10-06 14:05
查看更多