JavaでGUI上で名前と生年月日を入力するとGUIとファイルにそれぞれ情報が書き加えられるシステム
JavaでGUI上で名前と生年月日を入力して、EnterかAddボタンを押すと
GUIの下のフィールドにその情報が追加され
このプログラム上で作成したコマンドライン引数名のファイルに
一行ずつその情報が書かれて行くプログラムを作っています
FileWriteは一回機能するとその名前のファイルがなければ作り、ある場合は初期化して書き換えてしまう?ことから
Panelのプログラムをtry~catchの中に実装しているのですが
try文が不正な開始と出てしまいます
発生している問題・エラーメッセージ
GUIWrite.java:22: エラー: 型の開始が不正です
try (FileInputStream fis = new FileInputStream(Fname);
^
GUIWrite.java:22: エラー: ')'がありません
try (FileInputStream fis = new FileInputStream(Fname);
^
GUIWrite.java:22: エラー: 型の開始が不正です
try (FileInputStream fis = new FileInputStream(Fname);
^
GUIWrite.java:22: エラー: <identifier>がありません
try (FileInputStream fis = new FileInputStream(Fname);
^
GUIWrite.java:23: エラー: ';'がありません
ObjectInputStream ois = new ObjectInputStream(fis)){
^
GUIWrite.java:25: エラー: 式の開始が不正です
while(){
^
GUIWrite.java:28: エラー: ';'がありません
panelA(){//PanelAブロック開始
^
GUIWrite.java:89: エラー: 型の開始が不正です
} catch (FileNotFoundException e) {
該当のソースコード
Java
import java.awt.;
import javax.swing.;
import java.awt.event.*;
class panelA extends JPanel{
public String Fname;
public panelA(String Names){
setPreferredSize(new Dimension(600, 600));
Fname = Names;
}
JTextField Fields; JTextArea Area; JPanel panelB; JButton buttonA,buttonB; JLabel labelA; try (FileInputStream fis = new FileInputStream(Fname); ObjectInputStream ois = new ObjectInputStream(fis)){ try { while(){ panelA(){//PanelAブロック開始 setLayout(new BorderLayout()); panelB = new JPanel(); labelA = new JLabel("名前と生年月日"); labelA.setPreferredSize(new Dimension(400,30)); panelB.add(labelA); Fields = new JTextField(); Fields.setPreferredSize(new Dimension(400,30)); Area = new JTextArea(); Area.setEditable(false); Area.setPreferredSize(new Dimension(400,300)); panelB.setLayout(new FlowLayout()); buttonA = new JButton("Add"); buttonB = new JButton("Clear"); Fields.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Area.append(Fields.getText()+"\n"); ois.writeString(Fields.getText()); Fields.setText(""); } }); buttonA.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Area.append(Fields.getText()+"\n"); ois.writeString(Fields.getText()); Fields.setText(""); } }); buttonB.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Fields.setText(""); } }); panelB.add(buttonA); panelB.add(buttonB); add(labelA,BorderLayout.NORTH); add(Area,BorderLayout.SOUTH); add(Fields,BorderLayout.CENTER); add(panelB,BorderLayout.EAST); }//PanelAEnd }//WhileEnd } catch (EOFException e) {} } catch (FileNotFoundException e) { e.printStackTrace(); }
}
public class GUIWrite{
public static void main(String[] args) {
JFrame frame = new JFrame("名簿記入");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,350);
frame.add(new panelA());
//frame.add(new panelA(args[0]));
frame.pack();
frame.setVisible(true);
}
}
### 試したこと try文の開始の位置を変える、入力した文字を仮のString引数に代入してそれをFileWriteの書きこむ分に指定する などは試しましたが、それではファイルへの書き込みが上手く行かないのではないかと思います ### 補足情報(FW/ツールのバージョンなど) 一応 TeraPadで書いています
回答1件
あなたの回答
tips
プレビュー