我的目标是通过单击 JLabel 同时删除两个 JTextField。
我创建了这样的文本字段:
public void mouseClicked(MouseEvent e) {
inc++;
txtName= new JTextField();
txtNumber = new JTextField();
txtName.setName("txtName"+inc);
txtNumber.setName("txtNumber" + inc);
pnlPanel.add(txtName);
pnlPanel.add(txtNumber);
if(count>0){
x+=50;
y+=50;
txtName.setBounds(225,6+y, 182, 27);
txtNumber.setBounds(35, 6+y, 182, 27);
txtName.setName(tempBox+count);
if(pnlTxtText.getComponentCount() >9){
pnlPanel.setPreferredSize(new Dimension(450+y,50+y));
pnlPanel.add(txtStudName);
pnlPanel.add(txtStudentNumber);
frmFrame.repaint();
scrpPanel.revalidate();
}
}
frmFrame.repaint();
}
});
这是我删除文本字段的代码:
public void mouseClicked(MouseEvent e) {
int countPlace= pnlPanel.getComponentCount();
int countOfRemaining =countPlace;
pnlPanel.remove(--countOfRemaining);
frmFrame.revalidate();
pnlPanel.remove(--countOfRemaining);
frmFrame.revalidate();
}
});
它不是删除同一行上的txt字段,而是将其一一删除,我不希望这样。请帮我。谢谢。
最佳答案
在repaint()
之前调用pnlPanel.revalidate()
并且不要使用 setBounds()。而是定义适当的 LayoutManager
。
关于java - 动态添加 JTextFields 后将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22348621/