求助,java字数统计功能怎么写

zgdycmz 2011-12-06 02:33:10
自己动手写了java 记事本程序,只有一些简单的功能。。代码如下。。但是public void number() {}函数里的具体实现还不知道怎么写。。求帮助。补充完整。

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class NoteBook implements ActionListener {
JFrame jFrame;
FileDialog f_SaveAs, f_Load;
MenuBar menubar;
Menu menu1, menu2, menu3, menu4,menu5;
MenuItem menuItemNew, menuItemOpen, menuItemSave, menuItemExit,menuItemNumber,
menuItemHelp;
MenuItem menuItemCopy, menuItemCut, menuItemPast;
MenuItem menuItemBold, menuItemPlain, menuItemItalic;
Clipboard clipboard = null;
FileDialog f_save;
FileDialog f_load;
TextArea text;
BufferedReader br;
FileReader fr;
BufferedWriter bw;
FileWriter fw;

public NoteBook() {
Dimension scrnsize = Toolkit.getDefaultToolkit().getScreenSize();

clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
jFrame = new JFrame("我的记事本");
jFrame.setSize(300, 300);
jFrame.setLocation(scrnsize.width / 2 - jFrame.getWidth() / 2,
scrnsize.height / 2 - jFrame.getHeight() / 2);
jFrame.setVisible(true);
menubar = new MenuBar();
menu1 = new Menu("文件");
menu2 = new Menu("编辑");
menu3 = new Menu("字体");
menu4 = new Menu("查看");
menu5 = new Menu("帮助");
menuItemNew = new MenuItem("新建");
menuItemOpen = new MenuItem("打开");
menuItemSave = new MenuItem("另存为");
menuItemExit = new MenuItem("退出");
menuItemCopy = new MenuItem("复制");
menuItemCut = new MenuItem("剪切");
menuItemPast = new MenuItem("粘贴");
menuItemItalic = new MenuItem("斜体");
menuItemPlain = new MenuItem("正常");
menuItemBold = new MenuItem("粗体");
menuItemNumber = new MenuItem("字数统计");

menuItemHelp = new MenuItem("帮助");
text = new TextArea("", 10, 10, TextArea.SCROLLBARS_VERTICAL_ONLY);
f_SaveAs = new FileDialog(jFrame, "保存文件对话框", FileDialog.SAVE);
f_Load = new FileDialog(jFrame, "打开文件对话框", FileDialog.LOAD);

menu1.add(menuItemNew);
menu1.add(menuItemOpen);
menu1.add(menuItemSave);
menu1.addSeparator();
menu1.add(menuItemExit);

menu2.add(menuItemCopy);
menu2.add(menuItemCut);
menu2.add(menuItemPast);

menu3.add(menuItemPlain);
menu3.add(menuItemItalic);
menu3.add(menuItemBold);

menu4.add(menuItemNumber);

jFrame.setMenuBar(menubar);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menubar.add(menu4);
menubar.setHelpMenu(menu5);
menu5.add(menuItemHelp);
jFrame.add(text, BorderLayout.CENTER);

menuItemNew.setShortcut(new MenuShortcut(KeyEvent.VK_N));
menuItemOpen.setShortcut(new MenuShortcut(KeyEvent.VK_O));
menuItemSave.setShortcut(new MenuShortcut(KeyEvent.VK_S));
menuItemExit.setShortcut(new MenuShortcut(KeyEvent.VK_E));

menuItemCopy.setShortcut(new MenuShortcut(KeyEvent.VK_C));
menuItemCut.setShortcut(new MenuShortcut(KeyEvent.VK_X));
menuItemPast.setShortcut(new MenuShortcut(KeyEvent.VK_V));

f_Load.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
f_Load.setVisible(false);
}

});

f_SaveAs.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
f_SaveAs.setVisible(false);
}

});

jFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
});

menuItemNew.addActionListener(this);
menuItemOpen.addActionListener(this);
menuItemSave.addActionListener(this);
menuItemExit.addActionListener(this);

menuItemCopy.addActionListener(this);
menuItemCut.addActionListener(this);
menuItemPast.addActionListener(this);

menuItemItalic.addActionListener(this);
menuItemPlain.addActionListener(this);
menuItemBold.addActionListener(this);

menuItemNumber.addActionListener(this);

menuItemHelp.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(menuItemNew)) {
newo();
}
if (e.getSource().equals(menuItemOpen)) {
open();
}
if (e.getSource().equals(menuItemSave)) {
save();
}
if (e.getSource().equals(menuItemExit)) {
exit();

}

if (e.getSource().equals(menuItemCopy)) {
copy();
}
if (e.getSource().equals(menuItemCut)) {
cut();
}
if (e.getSource().equals(menuItemPast)) {
paste();
}

if (e.getSource().equals(menuItemItalic)) {
italic();
}
if (e.getSource().equals(menuItemPlain)) {
plain();
}
if (e.getSource().equals(menuItemBold)) {
bold();
}
if (e.getSource().equals(menuItemHelp))
number();

if (e.getSource().equals(menuItemHelp))
help();
}

public void newo() {
text.setText("");
}

public void open() {
f_Load.setVisible(true);
text.setText(null);
if (f_Load.getFile() != null) {
String s;

try {
File file = new File(f_Load.getDirectory(), f_Load.getFile());
fr = new FileReader(file);
br = new BufferedReader(fr);
while ((s = br.readLine()) != null) {
text.append(s + "\n");
}
fr.close();
br.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

public void save() {

f_SaveAs.setVisible(true);
if (f_SaveAs.getFile() != null) {

try {
File file = new File(f_SaveAs.getDirectory(), f_SaveAs
.getFile());
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
bw.write(text.getText(), 0, (text.getText()).length());
bw.flush();
bw.close();
fw.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

public void exit() {
System.exit(0);
}

public void copy() {
String temp = text.getSelectedText();
StringSelection selectText = new StringSelection(temp);
clipboard.setContents(selectText, null);
}

public void cut() {
String temp = text.getSelectedText();
StringSelection selectText = new StringSelection(temp);
clipboard.setContents(selectText, null);
int start = text.getSelectionStart();
int end = text.getSelectionEnd();
text.replaceRange("", start, end);
}

public void paste() {
Transferable content = clipboard.getContents(this);
DataFlavor flaver = DataFlavor.stringFlavor;
if (content.isDataFlavorSupported(flaver)) {
try {
String temp = (String) content.getTransferData(flaver);
text.append(temp);
} catch (UnsupportedFlavorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

public void italic() {
text.setFont(new Font("宋体", Font.ITALIC, 12));
}

public void plain() {
text.setFont(new Font("宋体", Font.PLAIN, 12));
}

public void bold() {
text.setFont(new Font("宋体", Font.BOLD, 12));
}

public void number() {

}

public void help() {
JOptionPane jp = new JOptionPane();
jp.showMessageDialog(null, "zgdycmz");
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new NoteBook();
}

}

...全文
162 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧