Java 如何将按钮添加到已经可见的jPanel?

Java 如何将按钮添加到已经可见的jPanel?,java,swing,button,jpanel,actionlistener,Java,Swing,Button,Jpanel,Actionlistener,我正在尝试向已经可见的jPanel添加按钮。但是,以下代码不起作用;我看不到第二个按钮 ja.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e) { klicks++; if(klicks == 35) { panel.add(nein)

我正在尝试向已经可见的jPanel添加按钮。但是,以下代码不起作用;我看不到第二个按钮

    ja.addActionListener(new ActionListener () {
        public void actionPerformed(ActionEvent e) {

            klicks++;

            if(klicks == 35) {                  
                panel.add(nein);
                ja.setForeground( Color.red );
                frame.repaint();
                panel.repaint();                    
            }

            if(klicks > 35) {                   
                nein.setText("Beenden");
                ja.setText("FAIL");
            }
        }});
    }

有人能帮忙吗?

您的问题很模糊,但看起来您正在修改一个已经可见的面板(即,已经添加到可见容器的层次结构中)。在这种情况下,你应该打电话

panel.revalidate();
panel.repaint();

根据您提供的代码,不清楚您试图做什么。你能把全部代码都贴出来吗

您需要将按钮创建为新对象,例如:

JButton button1 = new JButton("button1");

然后将其添加到窗格。

我在您发布的代码中看不到一个按钮,因为klicks是在哪里定义的?不在JButton中吗?听起来可能是这样。
nein
您想添加的按钮是不是?@Lennart Schoch对于大多数JComponents来说不需要调用repaint(),但只有对于没有更改属性的普通JComponents,重新验证(repaint)对CPU和GPU来说是相当困难的,一旦Swing GUI中的所有更改完成,就把它作为最后一行代码来调用