スクロールバーを表示するための画像やテキストボックスを取得するなど、インターネット上に散らばっている例をいくつか見つけましたが、それらはすべて、基本的にコンテンツ全体をスクロールペインに表示するプログラムを含んでいます。私がそれをするために必要なのは、JPanelをどこかに貼り付け、たくさんのテキストやアイコンなどを、私が持っているスペースに対して大きすぎるまでそのパネルに積み上げてから、それをスクロールすることです。
遅かれ早かれ手動でパネル内に物を配置する必要があるので、おそらくそのパネルもnullレイアウトできるようにする必要があります。
そこで、2つ分のスペースに3つの色付きブロックを配置し、下にスクロールして3つ目のブロックを表示できるスクロールバーを表示する非常に単純なプログラムを作成しようとしました。スクロールバーは追加されません。
インポートは少し混乱していて冗長です。これは、いくつかの異なるファイルからまとめられているためですが、エラーは発生していません。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
public class ScrollDemo extends JFrame {
JScrollPane scrollpane;
public ScrollDemo() {
super("JScrollPane Demonstration");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
init();
setVisible(true);
}
public void init() {
setLayout(null);
JPanel innerPanel = new JPanel();
JPanel outerPanel = new JPanel();
getContentPane().setBounds(0,0,800,600);
outerPanel.setBounds(400,0,400,400);
innerPanel.setBounds(0,0,600,600);
innerPanel.setLayout(null);
JPanel greenPanel = new JPanel();
JPanel yellowPanel = new JPanel();
JPanel bluePanel = new JPanel();
greenPanel.setBounds(0,0,200,200);
yellowPanel.setBounds(0,200,200,200);
bluePanel.setBounds(0,400,200,200);
greenPanel.setBackground(Color.GREEN);
yellowPanel.setBackground(Color.YELLOW);
bluePanel.setBackground(Color.BLUE);
innerPanel.add(greenPanel);
innerPanel.add(yellowPanel);
innerPanel.add(bluePanel);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(innerPanel);
scrollPane.setBounds(200,0,200,400);
add(scrollPane);
}
public static void main(String args[]) {
new ScrollDemo();
}
}