该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
public class note extends JFrame implements ActionListener{
JMenuBar B;
JMenu m1,m2,p4,p5,m3;
JMenuItem p1,p2,p3,p6,mm3;
JCheckBoxMenuItem c1,c2;
JCheckBox c3,c4;
JComboBox z1,z2;
JRadioButtonMenuItem b1,b2,b3;
JTextArea a;
JToolBar jt1;
JLabel jj1,jj2;
File file = null;
boolean isNewfile = true;
JFileChooser filechooser = new JFileChooser();
note()
{
this.setTitle("笔记本beta版 1.0");
this.setSize(520, 350);
//文本
a=new JTextArea();
//a.setText("\n"+" へ /| "+"\n"+" /\7 ∠_/ "+"\n"+" / │ / / "+"\n"+" │ Z _,< / /`ヽ "+"\n"+" │ ヽ / 〉 "+"\n"+" Y ` / / "+"\n"+" イ● 、 ● ⊂⊃〈 / "+"\n"+" () へ | \〈 "+"\n"+" >ー 、_ ィ │ // "+"\n"+" / へ / ノ<| \\ "+"\n"+" ヽ_ノ (_/ │// " +"\n"+" 7 |/ " +"\n"+" >―r ̄ ̄`ー―_ 出来吧 皮卡丘");
//菜单
B=new JMenuBar();
//工具
jt1=new JToolBar();
m1=new JMenu("文件(F)");
m1.setMnemonic(*F*);
m2=new JMenu("编辑(E)");
m2.setMnemonic(*E*);
m3=new JMenu("帮助(H)");
m3.setMnemonic(*H*);
p1=new JMenuItem("打开");
p2=new JMenuItem("保存");
p3=new JMenuItem("退出");
mm3=new JMenuItem("查看帮助");
p4=new JMenu("字体");
p5=new JMenu("颜色");
c1=new JCheckBoxMenuItem("粗体");
c2=new JCheckBoxMenuItem("斜体");
c3=new JCheckBox("粗体");
c4=new JCheckBox("斜体");
b1=new JRadioButtonMenuItem("红");
b2=new JRadioButtonMenuItem("黄");
b3=new JRadioButtonMenuItem("蓝");
jj1=new JLabel("字体:");
jj2=new JLabel("字号:");
//获取本地字体加入“z1 的 JComboBox”
GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
String evnfonts[] = gEnv.getAvailableFontFamilyNames();
if(evnfonts!=null && evnfonts.length>0){
z1 = new JComboBox(evnfonts);
}
//字体的z2 JComboBox
String[] str = { "8", "9", "10", "12", "14", "15", "16", "18",
"20", "21", "22", "24", "26", "28", "30", "36", "48", "54",
"72" };
z2=new JComboBox(str);
p4.add(c1);
p4.add(c2);
p5.add(b1);
p5.add(b2);
p5.add(b3);
m1.add(p1);
m1.add(p2);
m1.addSeparator();
m1.add(p3);
m2.add(p4);
m2.add(p5);
m3.add(mm3);
B.add(m1);
B.add(m2);
B.add(m3);
jt1.add(jj1);
jt1.add(z1);
jt1.add(jj2);
jt1.add(z2);
jt1.add(c3);
jt1.add(c4);
this.setIconImage(new ImageIcon("tu\\n.bmp").getImage());
mm3.addActionListener(this);
p1.addActionListener(this);
p2.addActionListener(this);
p3.addActionListener(this);
this.setJMenuBar(B);
//文本框a 加入滑轮滚动
JScrollPane j=new JScrollPane(a);
//当文本a 超出显示范围时出现滚动条
j.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
this.add(j);
//边界布局管理器将JToolBarI加入北部(JTextArea a 已默认添加到中部,占了除北部以外其余部分)
this.add(jt1,BorderLayout.NORTH);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public static void main(String[] args) {
new note();
}
public void actionPerformed(ActionEvent aa) {
if (aa.getSource() == mm3) {//关于本记事本
bang();
}
else if(aa.getSource() == p1){//打开
a.requestFocusInWindow();
if (file != null)
filechooser.setSelectedFile(file);
filechooser.addChoosableFileFilter(new JAVAFileFilter("txt"));//实现文件过滤,见下面的JAVAFileFilter类
filechooser.addChoosableFileFilter(new JAVAFileFilter("c"));
filechooser.addChoosableFileFilter(new JAVAFileFilter("cpp"));
filechooser.addChoosableFileFilter(new JAVAFileFilter("sql"));
filechooser.addChoosableFileFilter(new JAVAFileFilter("doc"));
filechooser.addChoosableFileFilter(new JAVAFileFilter("class"));
filechooser.addChoosableFileFilter(new JAVAFileFilter("java"));
int returnVal = filechooser.showOpenDialog(note.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = filechooser.getSelectedFile();
openFile(a);
isNewfile = false; //文件为已保存的
/*statusLabel.setText("当前打开文件:" + file.getAbsoluteFile()
+ " 行:" + Integer.toString(a.getRows()) + " 列:"
+ Integer.toString(a.getColumns()));//设置状态栏显示当前打开文档的路径和文件名
a.setCaretPosition(0);//设置光标的位置在开始 **/
}
}
else if(aa.getSource() == p2){//保存
}
else if(aa.getSource() == p3){//退出
a.requestFocusInWindow();
quitProg();
}
else if (aa.getSource() == p1) {//打开
a.requestFocusInWindow();
}
}
void bang() {//帮助菜单的弹出窗口
Icon help_icon = new ImageIcon("icons//doit.jpg");
String help = "作者很忙,自己解决。";
JOptionPane.showConfirmDialog(null, help, "帮助",
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE,
help_icon);
}
void quitProg() { //退出菜单的响应
Object[] options = { "确定", "取消" };
int s = JOptionPane.showOptionDialog(null, "退出后会清空未保存内容,是否退出?", "警告!",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null,
options, options[0]);
if (s == JOptionPane.YES_OPTION)
System.exit(0);
}
void openFile(JTextArea text) { //打开文件
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();
}
}
class JAVAFileFilter extends FileFilter{//实现文件过滤
String ext;
public JAVAFileFilter(String ext)
{
this.ext = ext;
}
public boolean accept(File file)
{
if (file.isDirectory())
return true;
String fileName = file.getName();
int index = fileName.lastIndexOf(*.*);
if (index > 0 && index < fileName.length()-1) {
String extension = fileName.substring(index+1).toLowerCase();
if (extension.equals(ext))
return true;
}
return false;
}
public String getDescription(){
if (ext.equals("txt"))
return "记事本文件(*.txt)";
if (ext.equals("doc"))
return "Word文档(*.doc)";
if (ext.equals("java"))
return "JAVA源文件 (*.java)";
if (ext.equals("class"))
return "JAVA类文件(*.class)";
return "";
}
}
}