ポイント1)画像を a に追加してから に追加するか、画像を a に追加してJPanel
、JFrame
最終JPanel
的JScrollPane
にJFrame
. JPanel
とは両方とも#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);
パネル変数を JFrame に追加すると、このコードを実行できるようになります。また、これはサンプル コードであり、コンポーネントをパネルに追加するための実際のコード記述方法ではないことに注意してください:P
ポイント 2) このクエリはまだ完全には理解できていないので、2 回に分けて回答します。a) 相対計算が重要な理由がわかりません。私が提供したサンプルを試して、必要なことができるかどうかを確認できますか? Rectangle
そうでない場合は、オプション b をお読みsetLocation(int, int)
ください。あなたが何をしようとしているのかを完全には理解しておらず、遊ぶことができるコードサンプルがないため、より正確な回答やコードサンプルを提供することはできません.