1

我在java中遇到了一个相当烦人的问题。我有一个在 java 中运行一堆模拟的程序,生成了很多数据,并且都显示在“图形”对象上。我创建了一个名为“Graphs”的组件,它使用 GroupLayout 显示这些“graph”对象的长列表,并将其放置在 Jscrollpane 中。

我遇到的问题是“图表”的最后一半被切断了。组件可以达到的最大大小为 32,767,恰好与 2^15 - 1(有符号 16 位数字的最大大小)相同。似乎组件大小被存储为 16 位有符号数字,而不是我最初想到的 32 位整数。

我的问题是这样的。

有没有办法改变java存储组件大小的方式,从而创建大于这个大小的组件?

如果不是,解决这个问题的最佳方法是什么?我想在一个面板上显示所有这些信息。即使我要“堆叠”“图表”组件,父组件仍然会超出最大尺寸。

提前致谢。

克里斯。

4

2 回答 2

2

请参阅相关问题,为什么 Java 不支持无符号整数?.

JList您可以通过在或中显示图表来解决此限制JTableJList/JTable只会渲染当前可见的单元格。理想情况下,您应该将图形的值分别存储在 a ListModelorTableModel中,并实现相应的自定义ListCellRendereror TableCellRenderer

如果您只想先进行概念验证,则可以将Graph Component s 直接推入 a DefaultListModelor DefaultTableModel,并使用其get*CellRendererComponent(...)方法返回Graph的渲染器。

于 2012-04-03T22:09:42.000 回答
1

我知道这种方法可能有点难以完成,但它会比您当前的方法更好。尝试在图表旁边添加滚动条,而不是滚动窗格。通过向滚动条添加侦听器,根据滚动条的位置动态更新图表的内容。

于 2012-04-03T22:01:56.830 回答