从 JScrollPane 中删除和替换组件时出现问题
Problems removing and replacing components from JScrollPane
我在更改 JScrollPane 组件时遇到问题。我有一个名为 textFields 的 ArrayList,我想从中获取元素并添加到我的 scrollPane。
有人可以帮助我吗?我似乎无法删除 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 时,这里是您最初问题的答案。
Problems removing and replacing components from JScrollPane
scrollPane.removeAll();
for(int a = 0; a < 5; a++)
{
JTextField jTF = textFields.get(a);
scrollPane.add(jTF);
}
从不 remove/add 组件到滚动窗格。滚动窗格是一个复杂的组件,包含许多 child 个组件:
- horizontal/vertical 滚动条
- column/row headers
- 一个视口
要更改滚动窗格中显示的内容,您需要在视口中重置组件。
所以在你的例子中你会:
- 为所有 child 组件创建一个 JPanel
- 将文本字段添加到此面板
然后你使用:
scrollPane.setViewportView( panel );
就是这样。无需使用 removeAll() 方法或 revalidate() 和 repaint() 滚动窗格。
我在更改 JScrollPane 组件时遇到问题。我有一个名为 textFields 的 ArrayList,我想从中获取元素并添加到我的 scrollPane。
有人可以帮助我吗?我似乎无法删除 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 时,这里是您最初问题的答案。
Problems removing and replacing components from JScrollPane
scrollPane.removeAll();
for(int a = 0; a < 5; a++)
{
JTextField jTF = textFields.get(a);
scrollPane.add(jTF);
}
从不 remove/add 组件到滚动窗格。滚动窗格是一个复杂的组件,包含许多 child 个组件:
- horizontal/vertical 滚动条
- column/row headers
- 一个视口
要更改滚动窗格中显示的内容,您需要在视口中重置组件。
所以在你的例子中你会:
- 为所有 child 组件创建一个 JPanel
- 将文本字段添加到此面板
然后你使用:
scrollPane.setViewportView( panel );
就是这样。无需使用 removeAll() 方法或 revalidate() 和 repaint() 滚动窗格。