2013-11-02 60 views
0

我想寫入一個文件,但它似乎沒有寫入它,文件名是grade output.txt ...無法寫入文件,java swing

例如當我運行程序,輸入測驗1:90 ..這是Q1應該在停止運行後添加到文件。

'try { 
      BufferedWriter out = new BufferedWriter(new FileWriter("Grade output.txt")); 
       //for (int i = 0; i < 11; i++) { 
        out.write(Q1 + " "); 



System.out.println(Q1); 

       out.close(); 
      } catch (IOException e) {} 

'

'

import java.applet.Applet; 
import java.awt.*; 
import java.awt.event.*; 
    import java.io.BufferedWriter; 
    import java.io.FileWriter; 
     import java.io.IOException; 

公共類AICS_grade_applet延伸的Applet執行的ActionListener {

//標籤titleLabel =新標籤( 「分級系統」,Label.CENTER);

Label prelimsQ1Label = new Label("Quiz 1", Label.LEFT); 
TextField prelimsQ1Field = new TextField(10); 

Label prelimsQ2Label = new Label("Quiz 2", Label.LEFT); 
TextField prelimsQ2Field = new TextField(10); 

Label prelimsCSLabel = new Label("Quiz 3", Label.LEFT); 
TextField prelimsCSField = new TextField(10); 

Label prelimsEXLabel = new Label("Quiz 4", Label.LEFT); 
TextField prelimsEXField = new TextField(10); 

Label midtermQ1Label = new Label("Quiz 5", Label.LEFT); 
TextField midtermQ1Field = new TextField(10); 

Label midtermQ2Label = new Label("Quiz 6", Label.LEFT); 
TextField midtermQ2Field = new TextField(10); 

Label midtermCSLabel = new Label("Quiz 7", Label.LEFT); 
TextField midtermCSField = new TextField(10); 

Label midtermEXLabel = new Label("Quiz 8", Label.LEFT); 
TextField midtermEXField = new TextField(10); 

Label finalsQ1Label = new Label("Quiz 9", Label.LEFT); 
TextField finalsQ1Field = new TextField(10); 

Label finalsQ2Label = new Label("Quiz 10", Label.LEFT); 
TextField finalsQ2Field = new TextField(10); 

Label finalsCSLabel = new Label("Quiz 11", Label.LEFT); 
TextField finalsCSField = new TextField(10); 

Label finalsEXLabel = new Label("Quiz 12", Label.LEFT); 
TextField finalsEXField = new TextField(10); 

Button computeButton = new Button(" Compute "); 
Button clearButton = new Button(" Clear "); 

Label gradeLabel = new Label("Grade: ", Label.RIGHT); 
TextField gradeField = new TextField(10); 

Label statusLabel = new Label("Status: ", Label.RIGHT); 
TextField statusField = new TextField("enter the data", 10); 

public void init() { // begin init------------------------------- 

    setBackground(Color.white); 
    setForeground(Color.red); 
// add(titleLabel); 

    add(prelimsQ1Label); 
    add(prelimsQ1Field); 
    prelimsQ1Field.setForeground(Color.red); 

    add(prelimsQ2Label); 
    add(prelimsQ2Field); 
    prelimsQ2Field.setForeground(Color.red); 

    add(prelimsCSLabel); 
    add(prelimsCSField); 
    prelimsCSField.setForeground(Color.red); 

    add(prelimsEXLabel); 
    add(prelimsEXField); 
    prelimsEXField.setForeground(Color.red); 

    add(midtermQ1Label); 
    add(midtermQ1Field); 
    midtermQ1Field.setForeground(Color.red); 

    add(midtermQ2Label); 
    add(midtermQ2Field); 
    midtermQ2Field.setForeground(Color.red); 

    add(midtermCSLabel); 
    add(midtermCSField); 
    midtermCSField.setForeground(Color.red); 

    add(midtermEXLabel); 
    add(midtermEXField); 
    midtermEXField.setForeground(Color.red); 

    add(finalsQ1Label); 
    add(finalsQ1Field); 
    finalsQ1Field.setForeground(Color.red); 

    add(finalsQ2Label); 
    add(finalsQ2Field); 
    finalsQ2Field.setForeground(Color.red); 

    add(finalsCSLabel); 
    add(finalsCSField); 
    finalsCSField.setForeground(Color.red); 

    add(finalsEXLabel); 
    add(finalsEXField); 
    finalsEXField.setForeground(Color.red); 

    add(computeButton); 
    computeButton.addActionListener(this); 
    add(clearButton); 
    clearButton.addActionListener(this); 

    add(gradeLabel); 
    add(gradeField); 
    gradeField.setForeground(Color.gray); 

    add(statusLabel); 
    add(statusField); 
    statusField.setForeground(Color.blue); 

} // end init 

public void actionPerformed(ActionEvent yhan) { 

    // declare object strings 
    String strprelimsQ1 = new String(prelimsQ1Field.getText()); 
    String strprelimsQ2 = new String(prelimsQ2Field.getText()); 
    String strprelimsCS = new String(prelimsCSField.getText()); 
    String strprelimsEX = new String(prelimsEXField.getText()); 
    String strmidtermQ1 = new String(midtermQ1Field.getText()); 
    String strmidtermQ2 = new String(midtermQ2Field.getText()); 
    String strmidtermCS = new String(midtermCSField.getText()); 
    String strmidtermEX = new String(midtermEXField.getText()); 
    String strfinalsQ1 = new String(finalsQ1Field.getText()); 
    String strfinalsQ2 = new String(finalsQ2Field.getText()); 
    String strfinalsCS = new String(finalsCSField.getText()); 
    String strfinalsEX = new String(finalsEXField.getText()); 

    if (yhan.getSource() == computeButton) 

    { 
     if (strprelimsQ1.equals("")) { 
      prelimsQ1Field.setText("0"); 
     } 

     if (strprelimsQ2.equals("")) { 
      prelimsQ2Field.setText("0"); 
     } 

     if (strprelimsCS.equals("")) { 
      prelimsCSField.setText("0"); 
     } 

     if (strprelimsEX.equals("")) { 
      prelimsEXField.setText("0"); 
     } 

     if (strmidtermQ1.equals("")) { 
      midtermQ1Field.setText("0"); 
     } 

     if (strmidtermQ2.equals("")) { 
      midtermQ2Field.setText("0"); 
     } 

     if (strmidtermCS.equals("")) { 
      midtermCSField.setText("0"); 
     } 

     if (strmidtermEX.equals("")) { 
      midtermEXField.setText("0"); 
     } 

     if (strfinalsQ1.equals("")) { 
      finalsQ1Field.setText("0"); 
     } 

     if (strfinalsQ2.equals("")) { 
      finalsQ2Field.setText("0"); 
     } 

     if (strfinalsCS.equals("")) { 
      finalsCSField.setText("0"); 
     } 

     if (strfinalsEX.equals("")) { 
      finalsEXField.setText("0"); 
     } 

     // Converting input to values 
     int Q1 = Integer.parseInt(prelimsQ1Field.getText()); 
     int Q2 = Integer.parseInt(prelimsQ2Field.getText()); 
     int Q3 = Integer.parseInt(prelimsQ2Field.getText()); 
     int Q4 = Integer.parseInt(prelimsEXField.getText()); 
     int Q5 = Integer.parseInt(midtermQ1Field.getText()); 
     int Q6 = Integer.parseInt(midtermQ2Field.getText()); 
     int Q7 = Integer.parseInt(midtermQ2Field.getText()); 
     int Q8 = Integer.parseInt(midtermEXField.getText()); 
     int Q9 = Integer.parseInt(finalsQ1Field.getText()); 
     int Q10 = Integer.parseInt(finalsQ2Field.getText()); 
     int Q11 = Integer.parseInt(finalsQ2Field.getText()); 
     int Q12 = Integer.parseInt(finalsEXField.getText()); 

     // Calculations 
     double grade = (Q1 + Q2 + Q3 + Q4 
       + Q5 + Q6 + Q7 + Q8 + Q9 + Q10+ Q11+ Q12)/12; 

     try { 
      BufferedWriter out = new BufferedWriter(new FileWriter("Grade output.txt")); 
       //for (int i = 0; i < 11; i++) { 
        out.write(Q1 + " "); 



System.out.println(Q1); 

       out.close(); 
      } catch (IOException e) {} 

     // Output grade 
     gradeField.setText("" + Math.round(grade)); 

     if (grade < 75) { 
      statusField.setText("failed"); 
     } else { 
      statusField.setText("Pass"); 
     } 

     if (grade > 100) { 
      statusField.setText("You may have invalid input"); 
     } 
    } // end if computeButton 

    if (yhan.getSource() == clearButton) { 
     gradeField.setText(""); 
     prelimsQ1Field.setText(""); 
     prelimsQ2Field.setText(""); 
     prelimsCSField.setText(""); 
     prelimsEXField.setText(""); 
     midtermQ1Field.setText(""); 
     midtermQ2Field.setText(""); 
     midtermCSField.setText(""); 
     midtermEXField.setText(""); 
     finalsQ1Field.setText(""); 
     finalsQ2Field.setText(""); 
     finalsCSField.setText(""); 
     finalsEXField.setText(""); 
     statusField.setText("reenter the data"); 

    } // end if clearButton 

} // end actionperformed 

} //結束類 '

+0

你爲什麼要添加的所有無關的代碼? –

+3

永遠不要忽略異常。如果存在IOException,那麼您將無法瞭解它,因爲您已經捕獲並忽略它。出現IO錯誤時拋出IOException,並且其類型和消息告訴您問題是什麼。至少將e.printStackTrace()添加到catch塊中。 Ans添加跟蹤代碼以至少知道IO代碼是否曾經執行過。 –

+0

剛剛添加了堆棧跟蹤,仍然沒有添加到.txt文件中 – ClearMist

回答

3

除非簽署的applet不能寫入文件系統。您可以使用Java Web Start作爲應用程序簽署小程序或部署重新開發小程序。

閱讀:

+0

嗨,你如何簽署applet,你能提供給我任何資源嗎? – ClearMist

+0

已經按照要求添加了鏈接,但會提示一個簡單的Swing應用程序而不是applet在這裏更合適 – Reimeus