добавление полосы прокрутки / полосы прокрутки к jframe с несколькими jpanels - PullRequest
2 голосов
/ 24 марта 2012

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

вот мой код

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.border.Border;
import sun.swing.FilePane;

public class Test extends JFrame
{
public Test() 
{
 getContentPane().setLayout(new FlowLayout());
 addWindowListener(new java.awt.event.WindowAdapter()
    {
      public void windowClosing(java.awt.event.WindowEvent evt)
      {
       System.exit(0);
      }
    });

    for(double i=10000000;i<90000000;i++)
    {
        if(i%10000000==0)
        {
          getContentPane().add(new z());
          validate();
        }
    }

    setSize(1024,1024);
    setVisible(true);
  }

  public static void main(String args[])
  {
   new Test();
  }
 }

в приведенном выше коде z это класс, который расширяет jpanel с 3 метками2 кнопки Пожалуйста, скажите мне, как прокрутить эти панели вниз или как я могу просмотреть все панели?

1 Ответ

4 голосов
/ 24 марта 2012

Рекомендации

  • Прочитайте учебник JScrollPane в учебниках по Java Swing.
  • Создайте JPanel, который использует полезный макет, скажем GridLayout.
  • Создайте JScrollPane, который содержит вышеуказанный JPanel
  • Добавьте JScrollPane к contentPane JFrame в позиции BorderLayout.CENTER (не заставляйте contentPane использовать FlowLayout).
  • Добавьте свойНовые JPanels для контейнера JPanel описаны в первой строке этой рекомендации.
  • revalidate() и repaint() контейнер JPanel при добавлении или удалении компонентов.
...