Java Swing - создайте функцию для добавления элементов в JScrollPanel - PullRequest
1 голос
/ 05 июня 2010

Я хочу создать функцию, чтобы я мог вызывать add JLabel и т. Д. Внутри JScrollPanel. Я не уверен, что команда находится в NetBeans.

Я попытался сделать JScrollPanel -> events -> container -> componentAdded, чтобы создать код ниже. Но ничего не появляется, когда я добавляю код в эту функцию.

     private void initComponents() {

        scrollPanel = new javax.swing.JScrollPane();

        scrollPanel.addContainerListener(new java.awt.event.ContainerAdapter() {
        public void componentAdded(java.awt.event.ContainerEvent evt) {
            scrollPanelComponentAdded(evt);
        }
     }


    private void scrollPanelComponentAdded(java.awt.event.ContainerEvent evt) {
       System.out.println("main");
    }   

Любая помощь будет великолепна, спасибо.

1 Ответ

3 голосов
/ 05 июня 2010

Я не использую Netbeans и не совсем уверен, что понимаю, что именно вы пытаетесь сделать, но обычный способ добавления компонентов на панель прокрутки - это добавление панели в качестве «окна просмотра» панели прокрутки , Панель прокрутки тогда похожа на окно в эту панель. Если панель слишком велика для размещения на панели прокрутки, появятся полосы прокрутки.

Вот фрагмент, чтобы показать, что я имею в виду. Это может быть то, что вы ищете в вашем initComponents методе:

JPanel panel = new JPanel();
panel.add( ... ); // Add whatever components to the panel
scrollPanel = new JScrollPane();
scrollPanel.setViewportView(panel);

A ContainerListener вызывается только тогда, когда компонент фактически добавляется или удаляется из контейнера. В приведенном выше коде другие компоненты никогда не добавляются на панель прокрутки.

...