{
// 显示对话框
int option = JOptionPane.showConfirmDialog( null, \文件已修改,是否保存?\
\保存文件?\ JOptionPane.WARNING_MESSAGE, null); switch(option) {
case JOptionPane.YES_OPTION: // 确认文件保存 saveFile(); // 保存文件 break;
case JOptionPane.NO_OPTION:// 放弃文件保存 open(); break; } } }
private boolean isCurrentFileSaved() {
if(stateBar.getText().equals(\未修改\ {
return false; } else {
return true; } }
private void open() {
// fileChooser 是 JFileChooser 的实例 // 显示文件选取的对话框
int option = fileChooser.showDialog(null, null);
// 使用者按下确认键
if(option == JFileChooser.APPROVE_OPTION) {
try {
// 开启选取的文件 BufferedReader buf = new BufferedReader( new FileReader(
fileChooser.getSelectedFile()));
setTitle(fileChooser.getSelectedFile().toString());// 设定文件标题 textArea.setText(\清除前一次文件 stateBar.setText(\未修改\设定状态栏
String lineSeparator = System.getProperty(\ // 取得系统相依的换行字符
String text;// 读取文件并附加至文字编辑区 while((text = buf.readLine()) != null) {
textArea.append(text);
textArea.append(lineSeparator); }
buf.close(); }
catch(IOException e) {
JOptionPane.showMessageDialog(null, e.toString(), \开启文件失败\ }
} }
private void saveFile() {
File file = new File(getTitle());// 从标题栏取得文件名称 if(!file.exists()) // 若指定的文件不存在 {
saveFileAs(); // 执行另存为 } else {
try {
// 开启指定的文件 BufferedWriter buf = new BufferedWriter( new FileWriter(file));
buf.write(textArea.getText());// 将文字编辑区的文字写入文件 buf.close();
stateBar.setText(\未修改\设定状态栏为未修改 }
catch(IOException e)
{
JOptionPane.showMessageDialog(null, e.toString(), \写入文件失败\ } } }
private void saveFileAs() {
int option = fileChooser.showSaveDialog(null); // 显示文件对话框 if(option == JFileChooser.APPROVE_OPTION) // 如果确认选取文件 {
File file = fileChooser.getSelectedFile(); // 取得选择的文件 setTitle(file.toString()); // 在标题栏上设定文件名称 try {
file.createNewFile(); // 建立文件 saveFile();// 进行文件保存 }
catch(IOException e) {
JOptionPane.showMessageDialog(null, e.toString(),
\无法建立新文件\ } } }
private void closeFile() {
if(isCurrentFileSaved()) // 是否已保存文件 {
dispose();// 释放窗口资源,而后关闭程序 } else {
int option = JOptionPane.showConfirmDialog( null, \文件已修改,是否保存?\
\保存文件?\ JOptionPane.WARNING_MESSAGE, null);
switch(option) {
case JOptionPane.YES_OPTION:// 确认文件保存 saveFile();//保存文件 break;
case JOptionPane.NO_OPTION:// 放弃文件保存 dispose(); } } }
private void cut() {
textArea.cut();
stateBar.setText(\已修改\ popUpMenu.setVisible(false); }
private void copy() {
textArea.copy();
popUpMenu.setVisible(false); }
private void paste() {
textArea.paste();
stateBar.setText(\已修改\ popUpMenu.setVisible(false); }
private void processTextArea() {
stateBar.setText(\已修改\ }
public static void main(String[] args) {
new c1(); } }
------------------------------------------------------------------------------------------
自行设计程序,创建一个标题为“计算器”的框架。要求有菜单项,文本框、按钮等控件。采用
BorderLayout或者GridLayout布局管理器。 import java.awt.*;
public class Calculater {
Frame frame; Panel panel1; Button button0; Button button1; Button button2; Button button3; Button button4; Button button5; Button button6; Button button7; Button button8; Button button9; Button buttonPlus; Button buttonMinus; Button buttonMul; Button buttonDiv; Button buttonDot; Button buttonPM; Button buttonEqual; Button button1x; Button buttonMod; Button buttonSqrt; public Calculater() {
frame=new Frame(\计算器\panel1=new Panel();
button0=new Button(\button1=new Button(\button2=new Button(\button3=new Button(\button4=new Button(\button5=new Button(\button6=new Button(\button7=new Button(\button8=new Button(\button9=new Button(\buttonPlus=new Button(\buttonMinus=new Button(\buttonMul=new Button(\buttonDiv=new Button(\buttonDot=new Button(\buttonPM=new Button(\