📄 frame1.java
字号:
package textedit2;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import javax.swing.JTextArea;
import java.io.*;
import javax.swing.text.*;
import javax.swing.JFileChooser;
import java.awt.Rectangle;
import javax.swing.*;
import com.borland.dbswing.*;
//import com.borland.jbcl.control.FontChooser;
//import com.borland.dbswing.*;
/**
* <p>Title: 文件编辑器</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c)天马行空</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Frame1 extends JFrame {
//变量定义----------------------------
String currFileName=null;
boolean dirty=false;
boolean flag=true;//自动换行的标记
String text="";//记录打开的文本内容
String text2="";//记录撤销前的文本内容
FontChooser fontChooser1 = new FontChooser();//创建字型选择对话框
//----------------------------------------
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JLabel statusBar = new JLabel();
JMenuItem jMenuFileNew = new JMenuItem();
JMenuItem jMenuFileOpen = new JMenuItem();
JMenuItem jMenuFileSave = new JMenuItem();
JMenuItem jMenuFileSaveAs = new JMenuItem();
JMenu jMenuGeShi = new JMenu();
JMenuItem jMenuColor = new JMenuItem();
JMenuItem jMenuBColor = new JMenuItem();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
JFileChooser jFileChooser1 = new JFileChooser();
JMenuItem jMenuChange = new JMenuItem();
JOptionPane jOptionPane1 = new JOptionPane();
JMenu jMenuBian = new JMenu();
JMenuItem jMenuSAll = new JMenuItem();
JMenuItem jMenuDAll = new JMenuItem();
JMenuItem jMenuFont = new JMenuItem();
JMenuItem jMenuCheXiao = new JMenuItem();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("无标题--文本编辑器");
statusBar.setText("");
statusBar.setBounds(new Rectangle( -1, 165, 400, 138));
jMenuFile.setText("文件");
jMenuFileExit.setText("退出");
jMenuFileExit.addActionListener(new Frame1_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setText("帮助");
jMenuHelpAbout.setText("关于");
jMenuHelpAbout.addActionListener(new
Frame1_jMenuHelpAbout_ActionAdapter(this));
jMenuFileNew.setText("新建");
jMenuFileNew.addActionListener(new Frame1_jMenuFileNew_actionAdapter(this));
jMenuFileOpen.setText("打开");
jMenuFileOpen.addActionListener(new Frame1_jMenuFileOpen_actionAdapter(this));
jMenuFileSave.setText("保存");
jMenuFileSave.addActionListener(new Frame1_jMenuFileSave_actionAdapter(this));
jMenuFileSaveAs.setText("另存为");
jMenuFileSaveAs.addActionListener(new
Frame1_jMenuFileSaveAs_actionAdapter(this));
jMenuGeShi.setText("格式");
jMenuColor.setText("字体颜色");
jMenuColor.addActionListener(new Frame1_jMenuColor_actionAdapter(this));
jMenuBColor.setText("背景色");
jMenuBColor.addActionListener(new Frame1_jMenuBColor_actionAdapter(this));
jFileChooser1.setBounds(new Rectangle(9, 394, 400, 399));
jScrollPane1.setBounds(new Rectangle(1, 0, 391, 224));
jMenuChange.setText("自动换行");
jMenuChange.addActionListener(new Frame1_jMenuChange_actionAdapter(this));
jOptionPane1.setBounds(new Rectangle(69, 390, 262, 90));
jMenuBian.setText("编辑");
jMenuSAll.setText("全选");
jMenuSAll.addActionListener(new Frame1_jMenuItem1_actionAdapter(this));
jMenuDAll.setText("全删");
jMenuDAll.addActionListener(new Frame1_jMenuDAll_actionAdapter(this));
jMenuFont.setText("字体");
jMenuFont.addActionListener(new Frame1_jMenuFont_actionAdapter(this));
jMenuCheXiao.setText("撤销");
jMenuCheXiao.addActionListener(new Frame1_jMenuCheXiao_actionAdapter(this));
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuBian);
jMenuBar1.add(jMenuGeShi);
jMenuFile.add(jMenuFileNew);
jMenuFile.add(jMenuFileOpen);
jMenuFile.add(jMenuFileSave);
jMenuFile.add(jMenuFileSaveAs);
jMenuFile.add(jMenuFileExit);
jMenuBar1.add(jMenuHelp);
jMenuHelp.add(jMenuHelpAbout);
setJMenuBar(jMenuBar1);
jMenuGeShi.addSeparator();
jMenuGeShi.add(jMenuFont);
jMenuGeShi.add(jMenuColor);
jMenuGeShi.add(jMenuBColor);
jMenuGeShi.add(jMenuChange);
contentPane.add(jScrollPane1, null);
jScrollPane1.getViewport().add(jTextArea1);
contentPane.add(jFileChooser1, null);
contentPane.add(statusBar, null);
contentPane.add(jOptionPane1);
jMenuBian.add(jMenuSAll);
jMenuBian.add(jMenuDAll);
jMenuBian.add(jMenuCheXiao);
text2=jTextArea1.getText();
fontChooser1.setFrame(this);
}
/**
* File | Exit action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
int flag2=JOptionPane.showConfirmDialog(null,
"真的要退出吗?", "天马行空制作室", JOptionPane.YES_NO_OPTION);
//int flag2=JOptionPane.OK_OPTION;
//String temp=(String)flag2;
//jTextArea1.setText(flag2);
if(flag2==1);
else System.exit(0);
}
/**
* Help | About action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
Frame1_AboutBox dlg = new Frame1_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.setVisible(true);
}
//方法定义------------------------------
void openFile(String fileName)
{
try {
File file = new File(fileName);
int size = (int) file.length();
int chars_read = 0;
FileReader in = new FileReader(file);
char[] data = new char[size];
while (in.ready()) {
chars_read += in.read(data, chars_read, size - chars_read);
}
in.close();
jTextArea1.setText(new String(data, 0, chars_read));
this.currFileName = fileName;
this.dirty =false;
statusBar.setText("打开了文件:" + fileName);
updateCaption();
text=jTextArea1.getText();
text2=text;
} catch (IOException e) {
statusBar.setText("文件打开错误:" + fileName);
}
}
void fileOpen()
{
if(!OkToAbandon())
{
return;
}
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
openFile(jFileChooser1.getSelectedFile().getPath());
}
this.repaint();
}
boolean saveFile()
{
if (currFileName == null) {
return saveAsFile();
}
try {
File file = new File(currFileName);
FileWriter out = new FileWriter(file);
String text = jTextArea1.getText();
out.write(text);
out.close();
this.dirty = false;
statusBar.setText("保存到:" + currFileName);
updateCaption();
return true;
} catch (IOException e) {
statusBar.setText("Error saving" + currFileName);
}
return false;
}
boolean saveAsFile()
{
this.repaint();
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
currFileName = jFileChooser1.getSelectedFile().getPath();
this.repaint();
return saveFile();
} else {
this.repaint();
return false;
}
}
boolean OkToAbandon()
{
if(!dirty)
{
return true;
}
int value=JOptionPane.showConfirmDialog(this,"保存修改?","Text Edit",JOptionPane.YES_NO_CANCEL_OPTION);
switch(value)
{
case JOptionPane.YES_OPTION:
return saveFile();
case JOptionPane.NO_OPTION:
return true;
case JOptionPane.CANCEL_OPTION:
default:
return false;
}
}
void updateCaption()
{
String caption;
if (currFileName == null) {
caption = "无标题";
} else {
caption = currFileName;
}
if (dirty) {
caption = "*" + caption;
}
caption = "文本编辑器-" + caption;
this.setTitle(caption);
}
public void jMenuFileNew_actionPerformed(ActionEvent e) {
/* if (OkToAbandon()) {
jTextArea1.setText("");
currFileName = null;
dirty = false;
updateCaption();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -