第 1 点)我猜你是在 a 中添加图像,JPanel
然后将图像添加到 a 中,然后JFrame
将图像添加JPanel
到 a 中JScrollPane
,最后落在JFrame
. JPanel
s 和s 都支持通过使用#scrollRectToVisibleJScrollPane
进行编程滚动。
这是 scrollRectToVisible 的(某种)工作示例
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
panel2.setPreferredSize(new Dimension(200, 11000));
SpringLayout layout = new SpringLayout();
panel2.setLayout(layout);
for (int i = 0; i < 100; i++) {
JLabel textField = new JLabel();
textField.setText("textfield number " + i);
textField.setPreferredSize(new Dimension(150, 100));
layout.putConstraint(SpringLayout.NORTH, textField, i * 110, SpringLayout.NORTH, panel2);
panel2.add(textField);
}
JScrollPane scrollPane = new JScrollPane(panel2, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setPreferredSize(new Dimension(200, 500));
panel2.scrollRectToVisible(new Rectangle(0, 800, 150, 100));
panel.add(scrollPane);
将 panel 变量添加到 JFrame 中,您就可以运行此代码了。另外,请注意,这只是示例代码,而不是应编写代码以将组件添加到面板的实际方式:P
第2点)我仍然不完全理解这个查询,所以我会分两部分给你答案。a)我不明白为什么相对计算很重要?你能试试我提供的样本,看看它是否能满足需要吗?如果没有,请阅读选项 b b) 该Rectangle
对象有一个setLocation(int, int)
(参考:Java 文档),您应该使用它。我无法为您提供更准确的答案或代码示例,因为我不完全了解您要做什么,而且我没有可以使用的代码示例。