Панель прокрутки для JPanel? - PullRequest
1 голос
/ 21 августа 2010

Я хочу добавить Scrollpane в JPanel, которая в свою очередь вызывается другой jpanel?

 public class test {

    JFrame jframe;
    JPanel jpanel;
    JScrollPane js= null;
    public void createFrame()
    {
        jframe=new JFrame("Thick client Wallboard");
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        jframe.setSize(dim.width,dim.height);
        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jframe.setUndecorated(true);
        jframe.setResizable(false);         
        jframe.setLocation(0, 0);
        getJContentPane();
        jframe.setContentPane(jpanel);
        jframe.setVisible(true);
    }
    public void getJContentPane()
    {

        jpanel = new JPanel();
        jpanel.setBackground(new Color(0x505050));
        jpanel.setLayout(null);
        jpanel.setFont(new Font("verdana",Font.BOLD,12));
        jpanel.setBorder(new LineBorder(Color.BLACK,2));
        getpanel();
        jpanel.add(js);
        jpanel.setBackground(Color.LIGHT_GRAY);
        jpanel.setVisible(true);


    }
    public void getpanel()
    {

        JPanel mainPanel=new JPanel();
        mainPanel.setBounds(50,50,920,650);
        mainPanel.setBackground(Color.WHITE);
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));  

        for(int i = 0; i < 30; i++) {  
            mainPanel.add(new JButton("Button " + i));  
        }
        js=new JScrollPane(mainPanel);

    }


    public static void main(String[] args) {

      test t=new test();
      t.createFrame();
    }

}

Я так и сделал, но он не работает ...

Ответы [ 2 ]

3 голосов
/ 21 августа 2010

Вы можете сделать это:

public static void main(String[] args) {
    Frame frame = new JFrame();  

    JPanel panel = new JPanel();  
    panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));  

    for(int i = 0; i < 20; i++) {  
      panel.add(new JButton("Button " + i));  
    } 

    //Creating JScrollPane with JPanel
    JScrollPane scrollPane = new JScrollPane(panel);
    JPanel otherPanel = new JPanel();
    otherPanel.setLayout(new BorderLayout());
    //Adding scrollPane to panel
    otherPanel.add(scrollPane);
    frame.add(otherPanel);  

    frame.setSize(200,200);  
    frame.setVisible(true);     

}

Также проверьте: http://www.coderanch.com/t/342486/GUI/java/Adding-ScrollPane-JPanel

3 голосов
/ 21 августа 2010

JScrollPane, как и все производные JComponent, является декоратором, и вы можете декорировать любой компонент с его помощью.

Вы можете поместить любой компонент в область прокрутки.

JScrollPane pane = new JScrollPane(component);

и простодобавьте полосу прокрутки вместо обернутого компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...