java 记事本字体_用JAVA 编写一个记事本,要有保存和设置字体的功能

这是一个使用Java编写的记事本程序,具备新建、打开、保存文件功能,并允许用户设置字体。程序中包含MyClipboard类用于处理剪贴板操作,MyFile类用于文件读写,MyFindDialog类实现了查找和替换功能。
摘要由CSDN通过智能技术生成

展开全部

import java.awt.*;

import java.io.*;

public class MyClipboard extends Frame implements ActionListener {

/**

*

*/

private static final long serialVersionUID = 5541943532647624059L;

private TextArea editor = new TextArea();

private MyFile mf = new MyFile(this);

private MyClipboard1 cb =new MyClipboard1();

private MyFindDialog findDlg = new MyFindDialog(this, editor);

public MyClipboard(String title) {

super(title);

MyMenuBar mb = new MyMenuBar(this);

mb.addMenus(new String[] { "文件", "编辑", "查找", "帮助" });

mb.addMenuItems(0, new String[] { "新建32313133353236313431303231363533e58685e5aeb931333332633631", "打开", "保存", null, "退出" });

mb.addMenuItems(1, new String[] { "剪贴", "复制", "粘贴", "清除", null, "全选" });

mb.addMenuItems(2, new String[] { "查找", null, "查找替换" });

mb.addMenuItems(3, new String[] { "我的记事本信息" });

add(editor);

mb.addActionListener(this);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

MyClipboard.this.dispose();

}

});

}

public void actionPerformed(ActionEvent e) {

String selected = e.getActionCommand();

if (selected.equals("新建"))

editor.setText("");

else if (selected.equals("打开")) {

try {

editor.setText(mf.getData());

} catch (IOException ie) {

}

} else if (selected.equals("保存")) {

try {

mf.setData(editor.getText());

} catch (IOException ie) {

}

} else if (selected.equals("退出")) {

dispose();

} else if (selected.equals("剪贴")) {

cb.setData(editor.getSelectedText());

editor.replaceRange("", editor.getSelectionStart(), editor

.getSelectionEnd());

} else if (selected.equals("复制")) {

cb.setData(editor.getSelectedText());

} else if (selected.equals("粘贴")) {

String str = cb.getData();

editor.replaceRange(str, editor.getSelectionStart(), editor

.getSelectionEnd());

} else if (selected.equals("清除")) {

editor.replaceRange("", editor.getSelectionStart(), editor

.getSelectionEnd());

} else if (selected.equals("全选")) {

editor.setSelectionStart(0);

editor.setSelectionEnd(editor.getText().length());

} else if (selected.equals("查找")) {

findDlg.showFind();

} else if (selected.equals("查找替换")) {

findDlg.showReplace();

}

}

public static void main(String[] args) {

MyClipboard memo = new MyClipboard("我的记事本");

memo.setSize(500, 500);

memo.setLocation(239, 120);

memo.setVisible(true);

}

}

class MyClipboard1 {

private Clipboard cb;

public MyClipboard1() {

cb = Toolkit.getDefaultToolkit().getSystemClipboard();

}

public void setData(String data) {

cb.setContents(new StringSelection(data), null);

}

public String getData() {

Transferable content = cb.getContents(null);

try {

return (String) content.getTransferData(DataFlavor.stringFlavor);

} catch (Exception ue) {

}

return null;

}

}

class MyFile {

private FileDialog fDlg;

public MyFile(Frame parent) {

fDlg = new FileDialog(parent, "", FileDialog.LOAD);

}

private String getPath() {

return fDlg.getDirectory() + "\\" + fDlg.getFile();

}

public String getData() throws IOException {

fDlg.setTitle("打开");

fDlg.setMode(FileDialog.LOAD);

fDlg.setVisible(true);

BufferedReader br = new BufferedReader(new FileReader(getPath()));

StringBuffer sb = new StringBuffer();

String aline;

while ((aline = br.readLine()) != null)

sb.append(aline + '\n');

br.close();

return sb.toString();

}

public void setData(String data) throws IOException {

fDlg.setTitle("保存");

fDlg.setMode(FileDialog.SAVE);

fDlg.setVisible(true);

BufferedWriter bw = new BufferedWriter(new FileWriter(getPath()));

bw.write(data);

bw.close();

}

}

class MyFindDialog extends Dialog implements ActionListener {

/**

*

*/

private static final long serialVersionUID = 4380007102323378083L;

private Label lFind = new Label("查找字符串:");

private Label lReplace = new Label("替换字符串:");

private TextField tFind = new TextField(10);

private TextField tReplace = new TextField(10);

private Button bFind = new Button("查找");

private Button bReplace = new Button("替换");

private TextArea ta;

public MyFindDialog(Frame owner, TextArea ta) {

super(owner, "查找", false);

this.ta = ta;

setLayout(null);

lFind.setBounds(10, 30, 80, 20);

lReplace.setBounds(10, 70, 80, 20);

tFind.setBounds(90, 30, 90, 20);

tReplace.setBounds(90, 70, 90, 20);

bFind.setBounds(190, 30, 80, 20);

bReplace.setBounds(190, 70, 80, 20);

add(lFind);

add(tFind);

add(bFind);

add(lReplace);

add(tReplace);

add(bReplace);

setResizable(false);

bFind.addActionListener(this);

bReplace.addActionListener(this);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

MyFindDialog.this.dispose();

}

});

}

public void showFind() {

setTitle("查找");

setSize(280, 60);

setVisible(true);

}

public void showReplace() {

setTitle("查找替换");

setSize(280, 110);

setVisible(true);

}

private void find() {

String text = ta.getText();

String str = tFind.getText();

int end = text.length();

int len = str.length();

int start = ta.getSelectionEnd();

if (start == end)

start = 0;

for (; start <= end - len; start++) {

if (text.substring(start, start + len).equals(str)) {

ta.setSelectionStart(start);

ta.setSelectionEnd(start + len);

return;

}

}

ta.setSelectionStart(end);

ta.setSelectionEnd(end);

}

private void replace() {

String str = tReplace.getText();

if (ta.getSelectedText().equals(tFind.getText()))

ta.replaceRange(str, ta.getSelectionStart(), ta.getSelectionEnd());

else

find();

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == bFind)

find();

else if (e.getSource() == bReplace)

replace();

}

}

class MyMenuBar extends MenuBar implements Serializable {

/**

*

*/

private static final long serialVersionUID = 2311645080753585104L;

public MyMenuBar(Frame parent) {

parent.setMenuBar(this);

}

public void addMenus(String[] menus) {

for (int i = 0; i < menus.length; i++)

add(new Menu(menus[i]));

}

public void addMenuItems(int menuNumber, String[] items) {

for (int i = 0; i < items.length; i++) {

if (items[i] != null)

getMenu(menuNumber).add(new MenuItem(items[i]));

else

getMenu(menuNumber).addSeparator();

}

}

public void addActionListener(ActionListener al) {

for (int i = 0; i < getMenuCount(); i++)

for (int j = 0; j < getMenu(i).getItemCount(); j++)

getMenu(i).getItem(j).addActionListener(al);

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值