サイズと定義された位置を持つJPanelが必要です。 JPanel内には、一定数の要素(ボタン)が水平方向に挿入されています。私のJPanelには幅が定義されているため、多くのボタンを追加した場合、それを見ることができませんでした。この場合、このJPanelのスクロールバーが必要です。ただし、このJPanelは、JFrame内の特定の位置の特定のサイズでなければなりません。 JPanelのスクロールバーは、その下に水平に配置されています。誰か助けてくれますか?私は成功せずに試しました!
JScrollPaneを使用して、preferredSizeを指定されたサイズに強制します(またはscrollPaneコンテナのLayoutManagerをnullに設定し、スクロールペインでsetBounds()を呼び出します)。スクロールバーポリシーも設定します。以下はその小さなサンプルです。
import Java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Test {
public static void main(String... args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
for (int i = 0; i < 10; i++) {
panel.add(new JButton("Hello-" + i));
}
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
scrollPane.setBounds(50, 30, 300, 50);
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500, 400));
contentPane.add(scrollPane);
frame.setContentPane(contentPane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
}
すべてのボタンをパネルに追加します。次に、このパネルをスクロールペインに追加します。
panel.add(button1);
panel.add(button2);
panel.add(button3);
.
.
.
panel.add(buttonn);
パネルにボタンを追加したら、スクロールペインにパネルを追加します。
JScrollPane panelPane = new JScrollPane(panel);
次に、このパネルをフレームに追加します。
考えられる解決策は次のとおりです。
または
Point
またはRectangle
までスクロールするには、メソッドscrollRectToVisible
が存在します。 myPanel.scrollRectToVisible(myButton.getBounds());