求JAVA源代码!!急~ ~ ~
导入Java . awt . *;
导入Java . awt . event . *;
导入javax . swing . *;
公共类JNotePadUI扩展JFrame {
私有JMenuItem menuOpen
私有JMenuItem菜单保存;
私有JMenuItem menuSaveAs
私有JMenuItem menuClose
私有JMenu editMenu
私有JMenuItem menuCut
私有JMenuItem menuCopy
私有JMenuItem menuPaste
私有JMenuItem menuAbout
私有JTextArea textArea
列兵JLabel stateBar
私有JFileChooser fileChooser
私人JPopupMenu popUpMenu
公共JNotePadUI() {
Super("新文本文件");
setUpUIComponent();
setUpEventListener();
set visible(true);
}
私有void setUpUIComponent() {
setSize(640,480);
//菜单栏
JMenuBar menuBar = new JMenuBar();
//设置文件菜单
JMenu file menu = new JMenu(" file ");
menu open = new JMenuItem(" open ");
//快捷键设置
menuOpen.setAccelerator(
keystone . get keystone(
关键事件。VK_O,
输入事件。CTRL _ MASK));
menu save = new JMenuItem(" save ");
menuSave.setAccelerator(
keystone . get keystone(
关键事件。VK,
输入事件。CTRL _ MASK));
MenuSaveAs = new JMenuItem("另存为");
menu close = new JMenuItem(" close ");
menuClose.setAccelerator(
keystone . get keystone(
关键事件。VK_Q,
输入事件。CTRL _ MASK));
file menu . add(menu open);
file menu . add separator();//分模线
file menu . add(menu save);
file menu . add(menus aveas);
file menu . add separator();//分模线
file menu . add(menu close);
//设置编辑菜单
JMenu edit menu = new JMenu(" edit ");
menu cut = new JMenuItem(" cut ");
menuCut.setAccelerator(
keystone . get keystone(key event。VK X,
输入事件。CTRL _ MASK));
menu copy = new JMenuItem(" copy ");
menuCopy.setAccelerator(
keystone . get keystone(key event。VK特区,
输入事件。CTRL _ MASK));
menu paste = new JMenuItem(" paste ");
menu paste . set加速器(
keystone . get keystone(key event。VK五世,
输入事件。CTRL _ MASK));
edit menu . add(menu cut);
edit menu . add(menu copy);
editmenu . add(menu paste);
//设置“关于”菜单
JMenu about menu = new JMenu(" about ");
MenuAbout = new JMenuItem("关于JNotePad ");
about menu . add(menu about);
menuBar.add(文件菜单);
menubar . add(edit menu);
menuBar.add(关于菜单);
setJMenuBar(菜单栏);
//文本编辑区域
textArea = new JTextArea();
TextArea.setFont(新字体("ì",字体。平原,16));
textarea . setline wrap(true);
JScrollPane panel = new JScrollPane(textArea,
ScrollPaneConstants。VERTICAL _ SCROLLBAR _ AS _ NEEDED,
ScrollPaneConstants。水平_滚动条_从不);
container content pane = getContentPane();
contentPane.add(panel,BorderLayout。中心);
//状态栏
StateBar = new JLabel("未修改");
state bar . sethorizontal alignment(swing constants。左);
stateBar.setBorder(
border factory . createetchedborder());
contentPane.add(stateBar,BorderLayout。南);
popup menu = edit menu . getpopup menu();
file chooser = new jfile chooser();
}
私有void setUpEventListener() {
//按下窗口关闭按钮的事件处理
addWindowListener(
新建WindowAdapter() {
public void window closing(window event e){
close file();
}
}
);
//菜单-打开
menuOpen.addActionListener(
新的ActionListener() {
public void action performed(action event e){
openFile();
}
}
);
//菜单-保存
menuSave.addActionListener(
新的ActionListener() {
public void action performed(action event e){
save file();
}
}
);
//菜单-另存为
menuSaveAs.addActionListener(
新的ActionListener() {
public void action performed(action event e){
save file as();
}
}
);
//菜单-关闭文件
menuClose.addActionListener(
新的ActionListener() {
public void action performed(action event e){
close file();
}
}
);
//菜单剪切
menuCut.addActionListener(
新的ActionListener() {
public void action performed(action event e){
cut();
}
}
);
//菜单-复制
menuCopy.addActionListener(
新的ActionListener() {
public void action performed(action event e){
copy();
}
}
);
//菜单-粘贴
menuPaste.addActionListener(
新的ActionListener() {
public void action performed(action event e){
paste();
}
}
);
//菜单-关于
menuAbout.addActionListener(
新的ActionListener() {
public void action performed(action event e){
//显示对话框
JOptionPane.showOptionDialog(空,
"程序名:\n JNotePad \n"+
“编程:\n?\n" +
简介:\ n简单的文本编辑器\ n,
“关于JNotePad”,
JOptionPane。默认选项,
JOptionPane。信息_消息,
null,null,null);
}
}
);
//编辑区域键盘事件
textArea.addKeyListener(
新密钥适配器(){
公共void键入的(KeyEvent e) {
process textarea();
}
}
);
//编辑区域鼠标事件
textArea.addMouseListener(
新鼠标适配器(){
public void mouse released(mouse event e){
if(e.getButton() == MouseEvent。按钮3)
popUpMenu.show(editMenu,e.getX(),e . gety());
}
public void mouse clicked(mouse event e){
if(e.getButton() == MouseEvent。按钮1)
popup menu . set visible(false);
}
}
);
}
私有void openFile() {
If(isCurrentFileSaved()) {//文件是否处于保存状态?
open();//打开
}
否则{
//显示对话框
int option = jooptionpane . showconfirmdialog(
空,"文件已被修改。要不要救?”,
“保存文件?”,JOptionPane。是_否_选项,
JOptionPane。WARNING_MESSAGE,null);
开关(可选){
//确认文件保存
case JOptionPane。是_选项:
save file();//保存文件
打破;
//放弃保存文件
case JOptionPane。NO _选项:
open();
打破;
}
}
}
private boolean isCurrentFileSaved(){
If(stateBar.getText()。等于(“未修改”){
返回true
}
否则{
返回false
}
}
私有void open() {
// fileChooser是JFileChooser的实例。
//显示文件选择对话框。
int option = file chooser . showdialog(null,null);
//用户按下Enter键。
if(option == JFileChooser。APPROVE_OPTION) {
/*
TODO:添加代码以读取文件。
*/
}
}
私有void saveFile() {
/*
TODO:添加代码以保存文件。
*/
}
私有void saveFileAs() {
/*
TODO:添加另存为的代码。
*/
}
私有void closeFile() {
//文件保存了吗?
if(isCurrentFileSaved()) {
//释放窗口资源,然后关闭程序。
dispose();
}
否则{
int option = jooptionpane . showconfirmdialog(
空,"文件已被修改。要不要救?”,
“保存文件?”,JOptionPane。是_否_选项,
JOptionPane。WARNING_MESSAGE,null);
开关(可选){
case JOptionPane。是_选项:
save file();
打破;
case JOptionPane。NO _选项:
dispose();
}
}
}
私有void cut() {
textarea . cut();
state bar . settext(" modified ");
popup menu . set visible(false);
}
私有void副本(){
textarea . copy();
popup menu . set visible(false);
}
私有void粘贴(){
textarea . paste();
state bar . settext(" modified ");
popup menu . set visible(false);
}
私有void processTextArea() {
state bar . settext(" modified ");
}
公共静态void main(String[] args) {
new JNotePadUI();
}
}