我需要帮助的是,通过按钮点击删除标签并创建一个新的标签。目前这个功能可以添加新的标签,但无法删除旧的标签。我找不到可行的命令,northpanel.remove()会同时销毁面板和之前的标签,但是这样就无法创建新的标签了。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class test2 extends JFrame implements ActionListener {
private JTextField textfield;
private JPanel northPanel = new JPanel();
private JPanel southPanel = new JPanel();
public test2() {
setSize(400, 200);
BorderLayout layout = new BorderLayout ();
setLayout(layout);
JLabel label1 = new JLabel("remove this");
northPanel.add(label1);
JLabel label2 = new JLabel("Enter move");
southPanel.add(label2);
textfield = new JTextField(10);
southPanel.add(textfield);
JButton button = new JButton("Move / remove label");
button.addActionListener(this);
southPanel.add(button);
add(northPanel, BorderLayout.NORTH);
add(southPanel, BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
String text = textfield.getText();
if (text.equals("")) {
System.out.println("textfield is empty");
} else {
System.out.println(text);
}
// northPanel.remove();
JLabel label3 = new JLabel("new label");
northPanel.add(label3);
repaint();
validate();
}
public static void main(String[] args) {
test2 app = new test2();
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}