【问题标题】:Java Swing- Create a function to add elements to JScrollPanelJava Swing - 创建一个向 JScrollPane 添加元素的函数
【发布时间】:2010-06-05 11:18:37
【问题描述】:

我想创建一个函数,以便我可以在JScrollPanel 中调用添加JLabel 等。我不确定 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");
    }   

任何帮助都会很棒,谢谢。

【问题讨论】:

    标签: java swing netbeans jlabel


    【解决方案1】:

    我不使用 Netbeans,我不太确定我是否完全理解您要执行的操作,但是将组件添加到滚动窗格的正常情况是将面板添加为滚动窗格的“视口” .滚动窗格就像进入该面板的窗口。如果面板太大而无法放入滚动窗格,则会出现滚动条。

    这里有一个 sn-p 来说明我的意思。这可能是您在 initComponents 方法中寻找的内容:

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

    ContainerListener 只会在实际添加或从容器中删除组件时调用。在上面的代码中,没有其他组件被添加到滚动窗格中。

    【讨论】:

    • 我想把它放到一个函数中,而不是放到我的 initComponents 代码中。
    • 好的,想澄清一下:当“某事”发生时,您想在函数的滚动窗格中添加一些组件吗?什么是“东西”?从上面的代码看来,您想要响应滚动窗格中组件的更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2021-03-20
    • 2013-03-31
    相关资源
    最近更新 更多