Изменить сторону jScrollPane и изменить размер - PullRequest
6 голосов
/ 17 декабря 2010

Я хочу изменить сторону моего JScrollPane с правой (по умолчанию) на левую сторону. Как мне это сделать?

И: Я хочу изменить размер JScrollBar, потому что это сенсорный дисплей (22 "), чтобы его можно было легко прокручивать.

Большое спасибо!

Ответы [ 2 ]

6 голосов
/ 18 декабря 2010

Следуя предложению @camickr для размещения, вот полный пример

import java.awt.*;
import javax.swing.*;
public class Test {
    public static void main(String[] args) {
        JFrame jf = new JFrame("Scorllbar test");
        JPanel jp = new JPanel() {{ add(new JComponent() {
                { setPreferredSize(new Dimension(450, 450)); }
                public void paintComponent(Graphics g) {
                    g.drawLine(0, 0, getWidth(), getHeight());
                    g.drawLine(getWidth(), 0, 0, getHeight());
                }});}};

        JScrollPane sp = new JScrollPane(jp,
                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

        // Get the scroll-bar and make it a bit wider.
        JScrollBar sb = sp.getVerticalScrollBar();
        sb.setPreferredSize(new Dimension(50, 0));

        // Put it to the left.
        sp.remove(sb);
        JPanel tmp = new JPanel(new BorderLayout());
        tmp.add(sp, BorderLayout.CENTER);
        tmp.add(sb, BorderLayout.WEST);

        jf.add(tmp);
        jf.setSize(300, 300);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);
    }
}

enter image description here

0 голосов
/ 18 декабря 2010
  1. Используйте панель с BorderLayout
  2. , добавьте полосу прокрутки к центру
  3. , добавьте вертикальную полосу прокрутки к западу

Если вы хотитеизмените ширину всех полос прокрутки, затем вы можете попробовать использовать UIManager.См. UIManager по умолчанию

...