【问题标题】:How to add buttons to an already-visible jPanel? [closed]如何将按钮添加到已经可见的 jPanel? [关闭]
【发布时间】:2012-10-13 20:47:53
【问题描述】:

我正在尝试将按钮添加到已经可见的 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");
            }
        }});
    }

谁能帮忙?

【问题讨论】:

  • 我在您发布的代码中看不到一个按钮
  • klicks 是在哪里定义的?
  • 没有一个 JButton 吗?听起来可能。
  • nein 是您要添加的按钮吗?

标签: java swing button jpanel actionlistener


【解决方案1】:

您的问题非常模糊,但看起来您正在修改一个已经可见的面板(也就是说,已经添加到可见容器的层次结构中)。在这种情况下,您应该调用

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

【讨论】:

  • @Lennart Schoch see related example 对于大多数 JComponents 来说,不需要调用 repaint(),但仅适用于没有更改其属性的普通 JComponents,revalidate (repaint) 对于 CPU 和GPU,将其称为最后一行代码,一旦完成 Swing GUI 中的所有更改
【解决方案2】:

从您提供的代码中不清楚您想做什么。你能发布整个代码吗?

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

JButton button1 = new JButton("button1");

然后将 then 添加到窗格中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2014-06-26
    • 2014-05-17
    • 1970-01-01
    相关资源
    最近更新 更多