Java:如何重置JFrame?

Java:如何重置JFrame?,java,swing,frame,restart,Java,Swing,Frame,Restart,setVisible当前用于重新启动方法,但转换会闪烁,是否有setVisible以外的指令?让它保持初始状态。最后一帧_1上的重置按钮仅返回初始状态 public class frame_1 extends javax.swing.JFrame { private void btnfinishActionPerformed(java.awt.event.ActionEvent evt) {

setVisible当前用于重新启动方法,但转换会闪烁,是否有setVisible以外的指令?让它保持初始状态。最后一帧_1上的重置按钮仅返回初始状态

   public class frame_1 extends javax.swing.JFrame {

   private void btnfinishActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Period total = new Period(0, totalDuration, PeriodType.yearMonthDay());
        txta.append("________________________________________________" + "\n");
        txta.append("Duracion total: " + total.getYears() + " years " + total.getMonths() + " Months " + total.getDays() + " Days " + "\n");
        txtini.setText(null);
        txtfin.setText(null);
}                                        

private void btnaddActionPerformed(java.awt.event.ActionEvent evt) {                                        
        period();
        txtini.setText(null);
        String fu = principio.txtingresa.getText();
        txtfin.setText(fu);
}                                       

public void period(){
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

        String startDate = txtini.getText();
        String endDate = txtfin.getText();

        Date start = null;
        Date end = null;
    try {
        start = sdf.parse(startDate);
        end = sdf.parse(endDate);
    } catch (ParseException ex) {
        Logger.getLogger(fecha_1.class.getName()).log(Level.SEVERE, null, ex);
    }

        if(end.getTime() < start.getTime()){
            JOptionPane.showMessageDialog(null, "the date finish y higher.!");
            txtini.setText(null);
            txtfin.setText(null);
        }else{
        long duration = end.getTime() - start.getTime();
        Period period = new Period(0, duration, PeriodType.yearMonthDay());

        txta.append(startDate + " - "+ endDate + "     =     " + period.getYears()+ "  years  " + period.getMonths() + "  Months  " + period.getDays() + "  Days  " + "\n");
        totalDuration += duration;
        }
        txtini.requestFocusInWindow();
}

   private void btnrestartActionPerformed(java.awt.event.ActionEvent evt) {                                        
        frame_1 obj1 = new frame_1();
        obj1.setVisible(false);
        obj1.setVisible(true);
        }

     }
公共类frame_1扩展了javax.swing.JFrame{
私有void btnfinishActionPerformed(java.awt.event.ActionEvent evt){
期间总计=新期间(0,totalDuration,PeriodType.yearMonthDay());
txta.append(“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu+”\n”);
追加(“Duracion总计:+total.getYears()+“years”+total.getMonths()+“Months”+total.getDays()+“Days”+“\n”);
txtini.setText(null);
txtfin.setText(空);
}                                        
私有void btnaddActionPerformed(java.awt.event.ActionEvent evt){
句号();
txtini.setText(null);
字符串fu=princiio.txtingrea.getText();
txtfin.setText(fu);
}                                       
公共无效期(){
SimpleDataFormat sdf=新的SimpleDataFormat(“日/月/年”);
字符串startDate=txtini.getText();
字符串endDate=txtfin.getText();
开始日期=空;
日期结束=空;
试一试{
start=sdf.parse(startDate);
end=sdf.parse(endDate);
}捕获(解析异常){
Logger.getLogger(fecha_1.class.getName()).log(Level.SEVERE,null,ex);
}
if(end.getTime()
我想你想要的是

JFrame.getContentPane().invalidate();
JFrame.getContentPane().validate();
JFrame.getContentPane().repaint();

根据您提供的代码,您的重置按钮可以简单到

private void btnrestartActionPerformed(java.awt.event.ActionEvent evt) {
   txta.setText("");
   txtini.setText("");
   txtfin.setText("");

   // here you have to initialize any other GUI fields and
   // any non-gui fields that need it.
}

你想达到什么目标?重新启动应用程序?重新启动一个JFrame,包含一个textarea,按钮计算一段时间,我显示这个代码,我工作,还有一些其他代码用他的方法重新启动框架?转换成什么?一个新的框架?也许您可以在JPanel上显示项目,并交换这些项目,然后定义“重新启动”。如果您只想让组件处于初始状态,那么您可能只需要清除所有文本组件。同样,问题的清晰性是关键。请编辑您的帖子并加入一些申请代码。不仅仅是你听众的一部分。