开发者

Dynamically add components without clicking button

开发者 https://www.devze.com 2023-04-02 10:38 出处:网络
I am adding the components dynamically at runtime on clicking the button. But now i want to add components Dynamically without clicking button.

I am adding the components dynamically at runtime on clicking the button. But now i want to add components Dynamically without clicking button. How can i do that..?? Here is my source code for adding a component on clicking the Button.

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        String[] items = new String[4];
        items[0]="English";
        items[1]="French";
        items[2]="Spanish";
        items[3]="Hindi";
        JTextField jtextfield = new JTextField();
        jtextfield.setPreferredSize(new Dimension(50, 20));
        JButton jbutton = new JButton();
        jbutton.setText("Remove");
        jbutton.setPreferredSize(new Dimension(89, 23));

        JLabel jlabel = new JLabel();
        jlabel.setText("Text:");
        jlabel.setPreferredSize(new Dimen开发者_开发知识库sion(40, 20));
        JLabel jlabel2 = new JLabel();
        jlabel2.setText("Language:");
        jlabel2.setPreferredSize(new Dimension(65, 20));

        JComboBox jcombo = new JComboBox();
        jcombo.setPreferredSize(new Dimension(80,20));
        jcombo.addItem(items[0]);
        jcombo.addItem(items[1]);
        jcombo.addItem(items[2]);
        jcombo.addItem(items[3]);

        jPanel6.add(jlabel);
        jPanel6.add(jtextfield);
        jPanel6.add(jlabel2);
        jPanel6.add(jcombo);
        jPanel6.add(jbutton);

        jbutton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                Component[]storeAllButtonInPanel = jPanel6.getComponents();

                if(storeAllButtonInPanel.length!=0) {
                    jPanel6.remove(storeAllButtonInPanel.length-1);
                    jPanel6.remove(storeAllButtonInPanel.length-2);
                    jPanel6.remove(storeAllButtonInPanel.length-3);
                    jPanel6.remove(storeAllButtonInPanel.length-4);
                    jPanel6.remove(storeAllButtonInPanel.length-5);

                    jPanel6.revalidate();
                    validate();
                    repaint();
                }
            }

        });



        jPanel6.validate();
        jPanel6.repaint();
    }

And if i have only 2 values of Text then it also disply two rows and if 3 values then there should be only 3 rows..!! How can i do that.?


no idea what do you want, there is needed / required some control about that, as output to the GUI and by using some of Listener (as your ActionListener),

maybe (with full control) JPopupMenu, API, examples here or here


An instance of javax.swing.Timer can periodically invoke the actionPerformed() method of an ActionListener, as suggested in this example that adds and removes JLabels.

0

精彩评论

暂无评论...
验证码 换一张
取 消