我在兩個不同的面板中添加了兩個按鈕,如果單擊第一個按鈕,則需要使用第二個按鈕進入下一個面板。但是當我點擊第一個按鈕時,按鈕沒有被替換。Java GUI,根據actionListener更改面板
/*Java GUI*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class TestFrame extends JFrame{
private JPanel panel1, panel2;
private JButton but,but2;
public TestFrame()
{
createPanel();
addPanel();
}
private void createPanel()
{
panel1 = new JPanel();
but = new JButton("TestButton");
but.addActionListener(new addButtonListener());
panel2 = new JPanel();
but2 = new JButton("TestButton2");
}
private void addPanel()
{
panel1.add(but);
panel2.add(but2);
add(panel1);
}
class addButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
getContentPane().removeAll();
add(panel2);
repaint();
}
}
public static void main(String args[])
{
JFrame frame = new TestFrame();
frame.setTitle("Test Software");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
}
}
+1當我看到你的答案時,我只是在寫這個。 @Dan是對的,你只需在重繪之前忘記驗證(或無效?)。順便說一句:驗證後「重繪」有用嗎? – HpTerm