2014-09-19 42 views
-1

setVisible當前用於重新啓動方法,但轉換閃爍,除setVisible之外是否還有其他任何指令?使其處於初始狀態。只有最後一個Frame_1上的復位按鈕才能返回到初始狀態。Java:如何重置JFrame?

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); 
     } 

    } 
+2

你到底想達到什麼目的?重新啓動應用程序? – aioobe 2014-09-19 14:27:26

+0

重新啓動一個JFrame,包含一個textarea,按鈕,計算一段時間,我顯示這個代碼,我工作,還有一些其他代碼重新啓動框架與他的方法? – DANIELBMZ 2014-09-19 14:30:59

+0

轉換成什麼?一個新的框架?也許你可以在JPanel上顯示項目並交換這些內​​容? – MarGar 2014-09-19 14:33:03

回答

0

我想你想要的是

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

根據您提交的代碼,你的復位按鈕可能是那樣簡單......

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. 
}