2012-10-23 64 views
2

我想將按鈕添加到已經可見的jPanel。但是,以下代碼不起作用;我看不到第二個按鈕。如何將按鈕添加到已經可見的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"); 
      } 
     }}); 
    } 

任何人都可以幫忙嗎?

+4

我在您發佈的代碼中看不到單個按鈕 –

+0

定義了哪些klicks? –

+1

是不是一個JButton?聽起來好像可能。 –

回答

2

你的問題非常含糊,但它看起來像你正在修改一個已經可見的面板(也就是說,已經被添加到可見容器的層次結構中)。在這種情況下,您應該致電

panel.revalidate(); 
panel.repaint(); 
+0

+1對於基本的東西 – mKorbel

+1

@Lennart Schoch [見相關示例](http://stackoverflow.com/questions/6988317/dynamically-add-components-to-a-jdialog/6989230#6989230)對於大多數JComponents isn' t需要調用repaint(),但是僅適用於純粹的JComponents而不更改其屬性,對於GPU而言,重新驗證(repaint)對於CPU來說非常困難,因此一旦完成Swing GUI中的所有更改,就會將其作爲最後一行代碼行調用 – mKorbel

0

您不清楚您嘗試從您提供的代碼中執行的操作。你能發佈整個代碼嗎?

你需要創建一個按鈕爲新的對象,例如:

JButton button1 = new JButton("button1"); 

然後再加入到窗格。

相關問題