Java 在ActionPerfmored中刷新JPanel并切换JTabbedPane
我试图清空JPanel中的Java 在ActionPerfmored中刷新JPanel并切换JTabbedPane,java,swing,user-interface,jpanel,jtextfield,Java,Swing,User Interface,Jpanel,Jtextfield,我试图清空JPanel中的JTextFields集合,但是我可以刷新面板而不是逐个清空它们吗?如果是的话,你是如何做到这一点的。我尝试了repaint(),revalidate()这些都不起作用。也许我错了。 我还想将JTabbedPane切换到另一个窗格,但是当我尝试使用这个时,它不起作用 private void buttonAddJobActionPerformed(java.awt.event.ActionEvent evt) {
JTextFields
集合,但是我可以刷新面板而不是逐个清空它们吗?如果是的话,你是如何做到这一点的。我尝试了repaint()
,revalidate()
这些都不起作用。也许我错了。
我还想将JTabbedPane
切换到另一个窗格,但是当我尝试使用这个时,它不起作用
private void buttonAddJobActionPerformed(java.awt.event.ActionEvent evt) {
try {
retrieveID();
String sqlStm = "INSERT INTO Job (employerID,title,description,type,salary,benefits,vacancies,closing,requirement,placement,applyTo,status,posted,location) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pst = conn.prepareStatement(sqlStm);
pst.setInt(1,id);
pst.setString(2,txtTitle.getText());
pst.setString(3,areaDescription.getText());
pst.setString(4,comboType.getSelectedItem().toString());
pst.setString(5,txtSalary.getText());
pst.setString(6,areaBenefits.getText());
pst.setString(7,txtVac.getText());
Date close;
close = txtDate.getDate();
pst.setString(8,sdf.format(close));
pst.setString(9,areaReq.getText());
pst.setString(10,comboPlace.getSelectedItem().toString());
pst.setString(11,txtWeb.getText());
pst.setString(12,comboStatus.getSelectedItem().toString());
Date now = new Date();
pst.setString(13,sdf.format(now));
pst.setString(14,txtLoc.getText());
pst.executeUpdate();
JOptionPane.showMessageDialog(null,"You have successfully added a job");
//empty all JTextfields
//switch to another
有人能给我一个示例代码来说明如何做到这一点吗 将所有JTextFields保存在一个容器中,并在该容器上迭代以清空它们。 所以,在某个地方:
JTabbedPane sourceTabbedPane = (JTabbedPane) evt.getSource();
sourceTabbedPane.setSelectedIndex(0);
最后,当您需要全部清除它们时:
textFields.add(txtTitle);
textFields.add(areaDescription);
// ... add all others here
将所有JTextFields保存在一个容器中,并在该容器上迭代以清空它们。 所以,在某个地方:
JTabbedPane sourceTabbedPane = (JTabbedPane) evt.getSource();
sourceTabbedPane.setSelectedIndex(0);
最后,当您需要全部清除它们时:
textFields.add(txtTitle);
textFields.add(areaDescription);
// ... add all others here
您可以遍历面板中包含的所有组件,如果它们是文本组件,请清除它们的值。代码如下所示:
for (JTextField tf : textFields) {
tf.setText("");
}
private void clearTextFields(容器)
{
int count=container.getComponentCount();
for(int i=0;i
此方法递归工作,并处理面板包含另一个包含文本字段的面板的情况。您可以循环遍历面板中包含的所有组件,如果它们是文本组件,请清除它们的值。代码如下所示:
for (JTextField tf : textFields) {
tf.setText("");
}
private void clearTextFields(容器)
{
int count=container.getComponentCount();
for(int i=0;i
此方法递归工作,并处理面板包含另一个包含文本字段的面板的情况。如果所有文本字段都直接放置在父组件中,则回答得非常好,否则,您将不得不递归到swing容器中。我喜欢这样,我们如何更动态地包含不仅仅是JTextComponent,由于父组件由
JTextArea
,JComboBox
以及一个附加的JDateChoose
@MuminAli组成,因此您应该添加更多的,否则如果
案例,以反映重置对这些案例的意义too@mavroprovato你能调整你的答案以反映面板addJobPanel而不是使用component这个词吗,所以你通过了addJobPanelreference@mavroprovato我应该传递什么作为论点?我的面板?非常好的回答,如果所有文本字段都直接放在父组件中,否则,您将不得不递归到swing容器中。我喜欢这样,既然父组件由JTextArea
组成,那么我们怎么能更动态地包含JTextComponent而不仅仅是JTextComponent呢,JComboBox
以及添加的JDateChoose
@MuminAli您应该添加更多的,否则如果
案例,以反映重置对这些案例的意义too@mavroprovato你能调整你的答案以反映面板addJobPanel而不是使用component这个词吗,所以你通过了addJobPanelreference@mavroprovato我应该传递什么作为论点?我的小组?为了更快地得到更好的帮助,发布一个。为了更快地得到更好的帮助,发布一个。