JScrollPaneの使用例
JScrollPaneは、表示されるコンポーネントのサイズがJFrame.java でスクロールbarを作成するコードbバーのサイズを超えた場合に、水平スクロールまたは垂直スクロール、あるいはその両方を同時に作成できるコンテナです。とても簡単です。最も一般的な用途は、.
import javax.swing.JFrameにスクロール・ペインを追加するJTextAreaです。Output
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class JScrollPaneTest {
//20 行、50 列のテキスト ボックス
JTextArea jta = new JTextArea(20, 50);
public JScrollPaneTest(){
JFrame f = new JFrame("JScrollPaneExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
JScrollPane jsp = new JScrollPane(jta);
f.add(jsp, BorderLayout.CENTER);
f.pack();
}
public static void main(String[] args) {
new JScrollPaneTest();
}
}
テキストがウィンドウのサイズを超えると、スクロールバーは水平バーと垂直バーの両方を作成します。
JScrollBar と JViewPort
A JScrollPaneは、2つのクラスを結合しますJScrollBar et JViewPort et 後者のインスタンスを使用して、ユーザーに表示されるパーツを管理します。垂直エレベータと水平エレベータの両方に基づいて寸法と位置を決定します。
両方のスクロールバー(水平と垂直)を取得するコードは次のとおりです:
両方のスクロールバー(水平と垂直)を取得するコードは次のとおりです:
JScrollBar vjsp = jsp.getVerticalScrollBar();
JScrollBar hjsp = jsp.getHorizontalScrollBar();
ビューポートには、getViewport(). この例では、JScrollPaneにイメージを追加し、setViewPosition(Point p).
import java.awt.Point;Output
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;
public class JScrollPaneTest {
public JScrollPaneTest(){
JFrame f = new JFrame("JScrollPaneExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setSize(300,300);
ImageIcon image = new ImageIcon("Fleur.jpg");
JLabel pimage = new JLabel();
pimage.setIcon(image);
JScrollPane jsp = new JScrollPane(pimage);
JViewport jvp = new JViewport();
jvp = jsp.getViewport();
jvp.setViewPosition(new Point(30,200));
f.add(jsp);
}
public static void main(String[] args) {
new JScrollPaneTest();
}
}
設定の変更
たとえば、ウィンドウが広い場合、2つのバーは不要になるため消えます。ウィンドウの高さを低くすると、再び表示されます。これは、各バーのスクロール・パネル・ポリシーによって制御されます。
JScrollPane には、作成時に設定を変更するための 2 つのコンストラクタがあります。
- JScrollPane(コンポーネント c, int vertical, int horizontal)
- JScrollPane(int vertical, int horizontal)
2つの方法で作成後に2つのバーの表示ポリシーを変更することもできます。setHorizontalScrollBarPolicy(), setVerticalScrollBarPolicy().
VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED | これはデフォルトで、スクロールバーは必要に応じて表示および非表示になります。 |
VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS | 常にスクロールバーを表示します。 | VERTICAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_NEVER | スクロールバーは常に非表示になります。 |
最初のJTextArea例のコードのJScrollPaneの直後に追加されます:
References:jsp.setVerticalScrollBarPolicy(jsp.VERTICAL_SCROLLBAR_ALWAYS);Output:
Oracle ドキュメント: JScrollPane
http://www2.htw-dresden.de/~beck/JAVA11/SWING/scrolling.html