JScrollPane добавить к проблеме кадра - PullRequest
1 голос
/ 12 марта 2012

В настоящее время у меня есть несколько jpanels на jframe.Я могу добавить все jpanels отлично к jframe, но когда я пытаюсь добавить jscrollpane, ничего не появляется.По сути, я просто хочу jscrollbar / pane на jframe, чтобы я мог прокрутить вниз, когда размер jpanels уходит с экрана.Это основной код, который я использовал:

   JPanel Jpanel = new JPanel();
   JScrollPane Jpane = new JScrollPane();

   frame.getContentPane().add(Jpanel);
   frame.getContentPane().add(Jpane);

Любая помощь будет оценена.Спасибо

Ответы [ 4 ]

1 голос
/ 12 марта 2012

1) код, который вы опубликовали, привел к тому, что (JFrame по умолчанию реализовано BorderLayout, и там только одна JComponent может заполнить бетон area или добавлен слой JComponent), только frame.getContentPane().add(Jpane);можно выводить на экран

2) вы должны согласиться с тем, что вы можете поставить на JScrollPane только один JComponent

3) JScrollPane, если он используется правильноLayoutManager (не AbsoluteLayout) и в случае, если Dimmension из JComponent шире, чем JViewport из JScrollPane

1 голос
/ 12 марта 2012

На этот вопрос уже был дан правильный ответ.Единственное, о чем я могу подумать, что вы, возможно, сделали неправильно (поскольку он не работает), это то, что вы добавляете панели в jframe.

Когда вы помещаете панель в область прокрутки, вам нужнодобавьте область прокрутки к JFrame, а не добавляйте панель к JFrame:

JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);
add(scrollPane); // or if you have a panel inside a panel, add the pane to that panel. ie west.add(scrollPane);
1 голос
/ 12 марта 2012

Вам нужно добавить JPanel на панель прокрутки, затем добавить панель прокрутки в рамку. Один из способов сделать это - при создании JScrollPane с конструктором:

JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);
0 голосов
/ 13 марта 2012

Что вы можете сделать, это:

   JPanel Jpanel = new JPanel(); 
   JScrollPane Jpane = new JScrollPane(Jpanel); 

   frame.setLayout(new BorderLayout());
   frame.add(Jpane, BorderLayout.CENTER);

Причина, по которой ваши панели не отображаются, заключается в том, что ваша рамка не знает, где их разместить. Требуется менеджер компоновки.

Здесь вы можете найти несколько основных менеджеров по раскладке: http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

...