Project中部分使用的class及methods整理在以下
Look it Java Class Constructor & Methods
Log: ‣
private String filePath = ""; //儲存檔案路徑
private String fileName = ""; //儲存檔案名稱
private boolean action = true;
private Window window = new Window(null);
private void newFile(java.awt.event.ActionEvent evt) {
action = true;
if("modified".equals(this.jLStatusText.getText())){
action = this.saveConfirm();
}
if(action){
filePath = "";
this.jTextArea.setText(null);
this.jLFilePathText.setText("");
this.jLStatusText.setText("unmodified");
setTitle("New File" + " - Java Text Editor");
}
}
private void newWindow(java.awt.event.ActionEvent evt) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
JavaTextEditor javaTextEditor = new JavaTextEditor();
javaTextEditor.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
javaTextEditor.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent ev) {
//javaTextEditor.dispose();
}
});
javaTextEditor.setSize(500, 400);
javaTextEditor.setVisible(true);
}
});
}
private void openFile(java.awt.event.ActionEvent evt) {
action = true;
if(this.jLStatusText.getText() == "modified"){
action = this.saveConfirm();
}
if(action){
JFileChooser file = new JFileChooser(); //選取檔案
int result = file.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
this.jTextArea.setText(null); //清空TextArea
filePath = file.getSelectedFile().getAbsolutePath(); //取得檔案路徑(filePath為全域變數,方便使用)
fileName = file.getSelectedFile().getName();
try {
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file.getSelectedFile()), "UTF-8");
//指定charset decoder為UTF-8,這樣才能讀取中文字體
BufferedReader reader = new BufferedReader(inputStreamReader);
String line = reader.readLine(); //讀取string
while (line != null) {
this.jTextArea.append(line + "\\n");
line = reader.readLine();
}
this.jLFilePathText.setText(filePath);
setTitle(fileName + " - Java Text Editor");
this.jLStatusText.setText("unmodified");
}
catch (IOException e) {
System.out.println("IO ERROR: " + e.getMessage());
}
}
else {
System.out.println("Open Cancel"); //若取消選擇則print提示
}
}
}
private void saveFile(java.awt.event.ActionEvent evt) {
String content = this.jTextArea1.getText();
File openFile = new File(filePath);
if(filePath == ""){
ActionEvent actionEvent = new ActionEvent(this.saveAsMenuItem, 1001, "save as", 16);
this.saveAsFile(actionEvent);
}
else {
try {
FileOutputStream fileOutputStream = new FileOutputStream(openFile);
//用FileWriter也能寫入檔案,但無法指定charset encoder
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "utf-8");
outputStreamWriter.write(content);
outputStreamWriter.close();
fileOutputStream.close(); //避免resource leakage
this.jLStatusText.setText("unmodified");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
private void saveAsFile(java.awt.event.ActionEvent evt) {
JFileChooser saveAs = new JFileChooser();
int result = saveAs.showSaveDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File file = saveAs.getSelectedFile();
filePath = file.getAbsolutePath();
fileName = file.getName();
String content = this.jTextArea.getText();
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
outputStreamWriter.write(content);
outputStreamWriter.close();
fileOutputStream.close();
this.jLFilePathText.setText(filePath);
setTitle(fileName + " - Java Text Editor");
this.jLStatusText.setText("unmodified");
}
catch (Exception e) {
e.printStackTrace();
}
}
else{
action = fasle;
}
}