如何解决从 JScrollPane 中删除和替换组件的问题
我在更改 JScrollPane 组件时遇到问题。我有一个名为 textFields 的 ArrayList,我想从中获取元素并添加到我的滚动窗格中。
有人可以帮我吗?我似乎无法删除 scrollPane 的元素或似乎无法从 ArrayList 添加其他文本字段。这是我的方法::
private void resetJSPComponents()
{
scrollPane.removeAll();
for(int a = 0; a < 5; a++)
{
JTextField jTF = textFields.get(a);
scrollPane.add(jTF);
}
scrollPane.revalidate();
scrollPane.repaint();
}
解决方法
我知道您有更好的解决方案,但对于将来使用 JScrollPane 时,这里是您原始问题的答案。
从 JScrollPane 中删除和替换组件的问题
scrollPane.removeAll();
for(int a = 0; a < 5; a++)
{
JTextField jTF = textFields.get(a);
scrollPane.add(jTF);
}
永远不要在滚动窗格中删除/添加组件。滚动窗格是一个复杂的组件,包含许多子组件:
- 水平/垂直滚动条
- 列/行标题
- 视口
要更改滚动窗格中显示的内容,请重置视口中的组件。
所以在你的例子中你会:
- 为所有子组件创建一个 JPanel
- 将文本字段添加到此面板
然后你使用:
scrollPane.setViewportView( panel );
仅此而已。无需使用 removeAll() 方法或 revalidate() 和 repaint() 滚动窗格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。