怎样用java编写一个记事本 ,具体步骤!

在下面那个程序中publicclassTextEditorFrameextendsJFrame是什么意思啊,编译时出错啊错误原因是TextEditorFrame是公共的,... 在下面那个程序中public class TextEditorFrame extends JFrame 是什么意思啊,编译时出错啊
错误原因是TextEditorFrame是公共的,应在TextEditorFrame.java的文件中声明是什么意思啊,哥哥姐姐们,帮帮忙吧!
展开
 我来答
一杯咖_啡
2010-11-28
知道答主
回答量:56
采纳率:0%
帮助的人:29.4万
展开全部
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.JToolBar;

public class TextEditorFrame extends JFrame {
File file = null;
Color color = Color.red;

TextEditorFrame() {
initTextPane();
initAboutDialog();
initToolBar();
initMenu();
}

void initTextPane() {
getContentPane().add(new JScrollPane(text));
}

JTextPane text = new JTextPane(); // 这是用来做文本框的
JFileChooser filechooser = new JFileChooser(); // 文件选择框
JColorChooser colorchooser = new JColorChooser();//
JDialog about = new JDialog(this); // 关于对话框
JMenuBar menubar = new JMenuBar();// 菜单

JMenu[] menus = new JMenu[] { new JMenu("文件"), new JMenu("编辑"),
new JMenu("帮助") };

JMenuItem menuitems[][] = new JMenuItem[][] {
{ new JMenuItem("新建"), new JMenuItem("打开"), new JMenuItem("保存"), new JMenuItem("退出") },
{new JMenuItem("复制"), new JMenuItem("剪切"), new JMenuItem("粘贴"), new JMenuItem("颜色") }, { new JMenuItem("关于") } };

void initMenu() {

for (int i = 0; i < menus.length; i++) {
menubar.add(menus[i]);
for (int j = 0; j < menuitems[i].length; j++) {
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener(action);
}
}
this.setJMenuBar(menubar);
}

ActionListener action = new ActionListener() { // when here have not wrong:
public void actionPerformed(ActionEvent e) {
JMenuItem mi = (JMenuItem) e.getSource();
String id = mi.getText();
if (id.equals("新建")) {
text.setText("");
file = null;
} else if (id.equals("打开")) {
if (file != null)
filechooser.setSelectedFile(file);
int returnVal = filechooser
.showOpenDialog(TextEditorFrame.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {

file = filechooser.getSelectedFile();
openFile();
}

} else if (id.equals("保存")) {
if (file != null)
filechooser.setSelectedFile(file);
int returnVal = filechooser
.showSaveDialog(TextEditorFrame.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = filechooser.getSelectedFile();
saveFile();
}

} else if (id.equals("退出")) {
TextEditorFrame f = new TextEditorFrame();
int s = JOptionPane.showConfirmDialog(f, "你真的要结束吗", "结束程序",
JOptionPane.YES_NO_CANCEL_OPTION);
if (s == JOptionPane.YES_OPTION)
System.exit(0);
} else if (id.equals("剪切")) {
text.cut();
} else if (id.equals("复制")) {
text.copy();
} else if (id.equals("粘贴")) {
text.paste();
} else if (id.equals("color")) {
color = JColorChooser.showDialog(TextEditorFrame.this, "",
color);
text.setForeground(color);

} else if (id.equals("关于")) {
about.setSize(200, 150);
about.show();
}

}

};

void saveFile() {
try {
FileWriter fw = new FileWriter(file);
fw.write(text.getText());
fw.close();
} catch (Exception e) {
e.printStackTrace();
}

}

void openFile() {
try {
FileReader fr = new FileReader(file);
int len = (int) file.length();
char[] buffer = new char[len];
fr.read(buffer, 0, len);
fr.close();
text.setText(new String(buffer));
} catch (Exception e) {
e.printStackTrace();
}

}

void initAboutDialog() {
about.getContentPane().add(new JLabel("作者-覃树新:记事本Q1.0版本"));
about.setModal(true);
about.setSize(200, 100);
}

JToolBar toolbar = new JToolBar();// 我来加上工具条
JButton[] buttons = new JButton[] {
new JButton("", new ImageIcon("qin.jpg")),
new JButton("", new ImageIcon("shu.jpg")),
new JButton("", new ImageIcon("xin.jpg")) };

void initToolBar() {
for (int i = 0; i < buttons.length; i++)
toolbar.add(buttons[i]);
buttons[0].setToolTipText("复制");
buttons[0].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
text.copy();
}
});
buttons[1].setToolTipText("剪切");
buttons[1].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
text.cut();
}
});

buttons[2].setToolTipText("粘贴");
buttons[2].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
text.paste();
}
});

this.getContentPane().add(toolbar, BorderLayout.NORTH);
}

public static void main(String args[]) {

TextEditorFrame f = new TextEditorFrame();

f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)

{
TextEditorFrame f = new TextEditorFrame();
int s = JOptionPane.showConfirmDialog(f, "你真的要结束吗", "结束程序",
JOptionPane.YES_NO_OPTION);
if (s == JOptionPane.YES_OPTION)
System.exit(0);
}
});

f.setTitle("简单的记事本");
f.setSize(800, 600);
f.setVisible(true);
}
}

以前看到的一个程序
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式