如何在Swing java中动态地将Jscrollpane添加到Jtabbedpane中

时间:2014-08-25 06:32:59

标签: java swing jpanel jtabbedpane

我正在使用Swing应用程序,我需要将动态滚动窗格添加到选项卡窗格中,我需要将Jpanel添加到每个滚动窗格中。所以我怎么能添加它我尝试了一个代码,但它没有添加滚动窗格。我可以帮忙。

我的代码是。

public class ChatDialog_Tabbedpane extends javax.swing.JFrame {
    static JLabel jLabelchat;
    int i= 0;

    public ChatDialog_Tabbedpane() {
        initComponents();
        setVisible(true);
    }
    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
        // TODO add your handling code here:
        try {
            System.out.println(jTextArea1.getText());
            JScrollPane jsp = new JScrollPane();

            JPanel jPanel = new JPanel();
            jsp.add(jPanel);
            jPanel.setLayout(new BoxLayout(jPanel, 1));
            i++;
            jPanel.add(new JLabel(i+" :label"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));
            jPanel.add(new JLabel(i+" :label 2"));

            jTabbedPane1.addTab("tab", jPanel);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }                                     
    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new ChatDialog_Tabbedpane().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration
}

它看起来像这样

但没有显示滚动我只需要添加所有时间单击“发送”按钮时的该窗格。   以及如何使用唯一标识来获取它?

1 个答案:

答案 0 :(得分:1)

不要将addJScrollPane一起使用,而是使用setViewportView,例如......

jsp.setViewportView(jPanel);

有关详细信息,请参阅How to Use Scroll Panes

当您执行类似......

之类的操作时,组件可能只驻留在单个控制器中
jTabbedPane1.addTab("tab", jPanel);

您要从其上一个父级(jPanel)中删除JScrollPane,而是将滚动窗格添加到选项卡式窗格...

jTabbedPane1.addTab("tab", jsp);