Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Как в JScrollPane установить область прокрутки?


Автор: erslgoeirjh 20.6.2014, 10:02
Есть компонент jScrollPane типа JScrollPane.
Внутри него есть панель jPanel (типа JPanel) с размером, допустим, 600 x 300 .
Как мне в jScrollPane установить, чтобы левый верхний угол отображаемой части панели jPanel равнялся некоторому определённому значению (x,y) -- например, (100,200) ?

Автор: dorogoyIV 21.6.2014, 11:11
у JScrollPane есть методы setColumnHeader, setRowHeader
в параметры методов вставляешь например JPanel определенного размера (100, 200).

Автор: dorogoyIV 21.6.2014, 11:42
для примера:

Код

import java.awt.*;
import javax.swing.*;

public class Main extends JFrame
{
    public Main()
    {
        JPanel columnHeaderPanel = new JPanel();
        columnHeaderPanel.setBackground(Color.RED);
        columnHeaderPanel.setPreferredSize(new Dimension(200, 200));

        JPanel rowHeaderPanel = new JPanel();
        rowHeaderPanel.setBackground(Color.YELLOW);
        rowHeaderPanel.setPreferredSize(new Dimension(100, 100));

        JPanel labels = new JPanel();
        BoxLayout bl = new BoxLayout(labels, BoxLayout.Y_AXIS);
        labels.setLayout(bl);

        JScrollPane jsp = new JScrollPane(labels);
        jsp.setColumnHeaderView(columnHeaderPanel);
        jsp.setRowHeaderView(rowHeaderPanel);

        for(int i = 0; i < 100; i++)
        {
            labels.add(new JLabel(i + ""));
        }

        add(jsp);
    }

    public static void main(String [] args)
    {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Main main = new Main();
                main.setDefaultCloseOperation(3);
                main.setBounds(100, 100, 600, 500);
                main.setVisible(true);}});
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)