我寫的JAVA記事本源程序
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
文件列圖:
AppJSB
package jsb;
import java.awt.Toolkit;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.awt.Dimension;
/**
* <p>Title: 流星絮语记事本</p>
*
* <p>Description: 记事本</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: 西昌学院</p>
*
* @author 冯立彬
* @version 1.0
*/
public class AppJSB {
boolean packFrame = false;
/**
* Construct and show the application.
*/
public AppJSB() {
FrameJSB frame = new FrameJSB();
frame.setSize(420,360);
frame.setResizable(false);
// Validate frames that have preset sizes
// Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
} else {
frame.validate();
}
// Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
/**
* Application entry point.
*
* @param args String[]
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
} catch (Exception exception) {
exception.printStackTrace();
}
new AppJSB();
}
});
}
}
FrameJSB.java
package jsb;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JToolBar;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.datatransfer.*;
import java.io.*;
/**
* <p>Title: 流星絮语记事本</p>
*
* <p>Description: 记事本</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: 西昌学院</p>
*
* @author 冯立彬
* @version 1.0
*/
public class FrameJSB extends JFrame{
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar(); //生成菜单栏母体
JMenu jMenuFile = new JMenu(); //生成第一个菜单(File)
JMenuItem jMenuFileCreat = new JMenuItem();
JMenuItem jMenuFileSave = new JMenuItem();
JMenuItem jMenuFileOpen = new JMenuItem();
JMenuItem jMenuFileSaveAs = new JMenuItem();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuEdit = new JMenu(); //生成第二个菜单(Edit)
JMenuItem jMenuEditReDo = new JMenuItem();
JMenuItem jMenuEditCut = new JMenuItem();
JMenuItem jMenuEditCopy = new JMenuItem();
JMenuItem jMenuEditPaste = new JMenuItem();
JMenuItem jMenuEditDel = new JMenuItem();
JMenuItem jMenuEditSelectAll = new JMenuItem();
JMenu jMenuFormat = new JMenu(); //生成第三个菜单(format)
JMenuItem jMenuFormatColor = new JMenuItem();
JMenu jMenuHelp = new JMenu(); //生成第四个菜单(about)
JMenuItem jMenuHelpDocument = new JMenuItem();
JMenuItem jMenuHelpAbout = new JMenuItem();
JToolBar jToolBar = new JToolBar();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
ImageIcon image1 = new ImageIcon(jsb.FrameJSB.class.getResource(
"openFile.png"));
ImageIcon image2 = new ImageIcon(jsb.FrameJSB.class.getResource(
"closeFile.png"));
ImageIcon image3 = new ImageIcon(jsb.FrameJSB.class.getResource("help.png"));
JLabel statusBar = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTxtArea = new JTextArea();
JMenuItem jMenuEditAutoWrap = new JMenuItem();
//生成打开文件对话框
//Frame_FileDialog fdilog=new Frame()
//JMenuItem jMenuFileOpen = new JMenuItem();
FileDialog fd;
String File_Name_withPath = ""; //全局变量名,文件名
String File_Name = ""; //全局变量名,文件名
boolean textIsChanged = false;
boolean textIsSaved=false;
FileReader fr; //文件读取器
FileWriter fw; //文件写入器
BufferedReader br; //文件缓冲读取器
BufferedWriter bw; //文件缓冲写入器
Clipboard clipBoard;
StringSelection text; //用于存放获得的字符
public FrameJSB() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
//getToolkit()获得一个Toolkit对象,该对象再调用getSystemClipboard()方法
//获得系统的剪贴板
clipBoard = getToolkit().getSystemClipboard();
//为文本框增加键盘监听事件
//addKeyListener(this);
//jTxtArea.addKeyListener(KeyPressed);
//addKeyListener(jTxtArea);
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("记事本");
statusBar.setText("程序开始");
statusBar.setBounds(new Rectangle(0, 284, 400, 17));
jMenuFile.setText("文件");
jMenuFileCreat.setText("新建");
jMenuFileCreat.addActionListener(new
FrameJSB_jMenuFileCreat_ActionAdapter(this));
jMenuFileOpen.setText("打开..");
jMenuFileOpen.addActionListener(new
FrameJSB_jMenuFileOpen_ActionAdapter(this));
jMenuFileSave.setText("保存");
jMenuFileSave.addActionListener(new
FrameJSB_jMenuFileSave_ActionAdapter(this));
//jMenuFileSave.setEnabled(false);
jMenuFileSaveAs.setText("另存为..");
jMenuFileSaveAs.addActionListener(new
FrameJSB_jMenuFileSaveAs_ActionAdapter(this));
//jMenuFileSaveAs.setEnabled(false);
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(new
FrameJSB_jMenuFileExit_ActionAdapter(this));
jMenuEdit.setText("编辑");
jMenuEditReDo.setText("撤消");
jMenuEditCut.setText("剪切");
jMenuEditCut.addActionListener(new
FrameJSB_jMenuEditCut_ActionAdapter(this));
jMenuEditCopy.setText("拷贝");
jMenuEditCopy.addActionListener(new
FrameJSB_jMenuEditCopy_ActionAdapter(this));
jMenuEditPaste.setText("粘贴");
jMenuEditPaste.addActionListener(new
FrameJSB_jMenuEditPaste_ActionAdapter(this));
jMenuEditDel.setText("删除");
jMenuEditDel.addActionListener(new
FrameJSB_jMenuEditDel_ActionAdapter(this));
jMenuEditSelectAll.setText("全选");
jMenuEditSelectAll.addActionListener(new
FrameJSB_jMenuEditSelectAll_ActionAdapter(this));
jMenuEditAutoWrap.setText("自动换行");
jMenuEditAutoWrap.addActionListener(new
FrameJSB_jMenuEditAutoWrap_ActionAdapter(this));
jMenuFormat.setText("格式");
jMenuFormatColor.setText("字体..");
jMenuFormatColor.addActionListener(new
FrameJSB_jMenuFormatColor_ActionAdapter(this));
jMenuHelp.setText("帮助");
jMenuHelpDocument.setText("帮助文档");
jMenuHelpDocument.addActionListener(new
FrameJSB_jMenuHelpDocument_ActionAdapter(this));
jMenuHelpAbout.setText("关于软件");
jMenuHelpAbout.addActionListener(new
FrameJSB_jMenuHelpAbout_ActionAdapter(this));
jToolBar.setBounds(new Rectangle(0, 0, 400, 25));
jScrollPane1.setBounds(new Rectangle(4, 27, 396, 260));
jTxtArea.setText("");
jTxtArea.setLineWrap(true);
jMenuBar1.add(jMenuFile);
jMenuFile.add(jMenuFileCreat);
jMenuFile.add(jMenuFileOpen);
jMenuFile.add(jMenuFileSave);
jMenuFile.add(jMenuFileSaveAs);
jMenuFile.addSeparator();
jMenuFile.add(jMenuFileExit);
jMenuBar1.add(jMenuEdit);
jMenuEdit.add(jMenuEditReDo);
jMenuEdit.addSeparator();
jMenuEdit.add(jMenuEditCopy);
jMenuEdit.add(jMenuEditCut);
jMenuEdit.add(jMenuEditPaste);
jMenuEdit.add(jMenuEditDel);
jMenuEdit.addSeparator();
jMenuEdit.add(jMenuEditSelectAll);
jMenuEdit.add(jMenuEditAutoWrap);
jMenuBar1.add(jMenuHelp);
jMenuHelp.add(jMenuHelpDocument);
jMenuHelp.add(jMenuHelpAbout);
setJMenuBar(jMenuBar1);
jButton1.setIcon(image1);
jButton1.setToolTipText("Open File");
jButton2.setIcon(image2);
jButton2.setToolTipText("Close File");
jButton3.setIcon(image3);
jButton3.setToolTipText("Help");
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
contentPane.add(jToolBar, null);
contentPane.add(statusBar, null);
contentPane.add(jScrollPane1);
jScrollPane1.getViewport().add(jTxtArea);
}
//下面是键盘事件
//KeyEvent类提供了一个方法:public void getKeyCode()用于判断哪个键被按下或释放
//键盘按下
public void keyPressed(KeyEvent e) {
textIsChanged = true;
}
//释放按键
public void keyRelease(KeyEvent e) {
textIsChanged = true;
}
//
public void keyTyped(KeyEvent e) {
textIsChanged = true;
}
/**
* File | Exit action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
System.exit(0);
}
/**
* Help | About action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
FrameJSB_AboutBox dlg = new FrameJSB_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
//新建文件
void jMenuFileCreat_actionPerformed(ActionEvent actionEvent) {
}
//打开文件
void jMenuFileOpen_actionPerformed(ActionEvent actionEvent) {
try {
if(textIsChanged==true){//如果文本已经发生了更改,提示保存
//这里应该提示用户是否保存
jMenuFileSaveAs_actionPerformed(actionEvent);//调开另存为话框
}
else{
fd = new FileDialog(this, "文件打开对话框", FileDialog.LOAD);
fd.setVisible(true);
//怎么确定没有选定文件,而不进行下面的操作
//File_Name = fd.getFile().toString();
File_Name = fd.getFile();
File_Name_withPath = fd.getDirectory();
//File_Name_withPath = fd.getDirectory().toString() + File_Name;
if (File_Name.length() > 0) {
jTxtArea.setText("");
}
this.setTitle(File_Name); //将文件名设为标题
//生成一个对应于该文件的文件对象
File file = new File(fd.getDirectory(), fd.getFile());
fr = new FileReader(file);
br = new BufferedReader(fr);
String tString; //临时字符串变量
int num = 0;
//加上换行符,在输出的时候才会格式不变化
String lineSep = System.getProperty("line.separator");
while ((tString = br.readLine()) != null) {
tString = tString + lineSep;
jTxtArea.append(tString);
}
br.close();
fr.close();
fd.dispose();
}
} catch (Exception e) {
e.printStackTrace();
}
}
//保存文件
void jMenuFileSave_actionPerformed(ActionEvent actionEvent) {
try {
if (textIsSaved == false) {
jMenuFileSaveAs_actionPerformed(actionEvent);
} else {
fd = new FileDialog(this, "文件保存对话框", FileDialog.SAVE);
//fd.setVisible(true);//因为是保存所有不用显示出来
//fd.set
//if(File_Name.length()>0)//如果是已经打开的文件就把文件名显示出来
//fd.setFile(File_Name);
//fd.setFilenameFilter(txt);
File file = new File(File_Name_withPath, File_Name);
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
//String lineString;
//lineString=jTxtArea.getText();
//lineString=lineString.replace("/n");
bw.write(jTxtArea.getText(), 0, jTxtArea.getText().length());
this.setTitle(fd.getFile());
bw.close();
fw.close();
fd.dispose();
textIsSaved=true;
textIsChanged=false;
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
void jMenuFileSaveAs_actionPerformed(ActionEvent actionEvent) {
try {
//这里还有错误,就是如果文件不是打开而是新建的点击这里会出错
//因为只是一下就保存了,假设已经取得原来的文件名和路径
fd = new FileDialog(this, "文件另存为对话框", FileDialog.SAVE);
fd.setVisible(true);
//fd.set
//if(File_Name.length()>0)//如果是已经打开的文件就把文件名显示出来
//fd.setFile(File_Name);
//fd.setFilenameFilter(txt);
File file = new File(fd.getDirectory(), fd.getFile());
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
//String lineString;
//lineString=jTxtArea.getText();
//lineString=lineString.replace("/n");
bw.write(jTxtArea.getText(), 0, jTxtArea.getText().length());
this.setTitle(fd.getFile());
bw.close();
fw.close();
fd.dispose();
textIsSaved=true;
textIsChanged=false;
} catch (IOException ex) {
ex.printStackTrace();
}
}
//数据的拷贝,送入剪贴板
void copySelectedData() {
String S;
S = jTxtArea.getSelectedText();
text = new StringSelection(S); //将选中的文本放入text全局变量中
clipBoard.setContents(text, null);
}
//数据的拷贝
void jMenuEditCopy_actionPerformed(ActionEvent actionEvent) {
copySelectedData();
}
//数据的粘贴
void jMenuEditPaste_actionPerformed(ActionEvent actionEvent) {
Transferable contents = clipBoard.getContents(new Button());
DataFlavor flavor = DataFlavor.stringFlavor;
contents.isDataFlavorSupported(flavor);
try {
//取得剪贴板中的内容
String tText = (String) contents.getTransferData(flavor);
//用替换选中文字的方式来粘贴,如果没有选中文件,那么选择的开始和结束都是一样的
//取得选中点前面的文字和后面的文字,再将从剪贴板取得的文字三都结合起来就起到了剪
//贴的目的
int selStart, selEnd;
selStart = jTxtArea.getSelectionStart();
selEnd = jTxtArea.getSelectionEnd();
if (selStart == selEnd) {
//采用insert方法可以文本可以自动获得光标,而不用手工去获得光标
jTxtArea.insert(tText, selStart);
} else {
String allText, beforeText, afterText;
allText = jTxtArea.getText();
beforeText = allText.substring(0, selStart);
afterText = allText.substring(selEnd, allText.length());
allText = beforeText + tText + afterText;
jTxtArea.setText(allText);
//失去光标,手工获得光标,但是这时的光标位置是在文本尾
jTxtArea.setFocusable(true);
//jTxtArea.insert(tText,selStart);
}
} catch (Exception e) {
e.printStackTrace();
}
}
//全选
void jMenuEditSelectAll_actionPerformed(ActionEvent actionEvent) {
jTxtArea.selectAll();
}
//删除选中
void jMenuEditDel_actionPerformed(ActionEvent actionEvent) {
int selStart, selEnd;
selStart = jTxtArea.getSelectionStart();
selEnd = jTxtArea.getSelectionEnd();
String allText, beforeText, afterText;
allText = jTxtArea.getText();
beforeText = allText.substring(0, selStart);
afterText = allText.substring(selEnd, allText.length());
allText = beforeText + afterText;
jTxtArea.setText(allText);
//失去光标,手工获得光标,但是这时的光标位置是在文本尾
jTxtArea.setFocusable(true);
}
void jMenuEditCut_actionPerformed(ActionEvent actionEvent) {
int selStart, selEnd;
String beforeText, afterText, allText, selText;
//取得选中的文字
selText = jTxtArea.getSelectedText();
allText = jTxtArea.getText();
//取得选中文字的开始点
selStart = jTxtArea.getSelectionStart();
//取得选中文字的结束点
selEnd = jTxtArea.getSelectionEnd();
//取得选中文字前面的文字
beforeText = allText.substring(0, selStart);
//取得选中文字后面的文字
afterText = allText.substring(selEnd, allText.length());
text = new StringSelection(selText); //将选中的文本放入text全局变量中
clipBoard.setContents(text, null);
allText = beforeText + afterText;
jTxtArea.setText(allText);
}
//自动换行
void jMenuEditAutoWrap_actionPerformed(ActionEvent actionEvent) {
if (jTxtArea.getLineWrap()) {
jTxtArea.setLineWrap(false);
} else {
jTxtArea.setLineWrap(true);
}
}
//格式化文本的字体
void jMenuFormatColor_actionPerformed(ActionEvent actionEvent) {
//FontDialog fd1=new FontD
}
//调用帮助文档
void jMenuHelpDocument_actionPerformed(ActionEvent actionEvent) {
Runtime ec = Runtime.getRuntime();
try {
ec.exec("notepad.chm");
} catch (IOException ex) {
}
}
}
class FrameJSB_jMenuFileExit_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuFileExit_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileExit_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuHelpAbout_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuHelpAbout_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuHelpAbout_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuFileCreat_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuFileCreat_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileCreat_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuFileOpen_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuFileOpen_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileOpen_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuFileSave_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuFileSave_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileSave_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuFileSaveAs_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuFileSaveAs_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileSaveAs_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuEditCopy_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuEditCopy_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuEditCopy_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuEditPaste_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuEditPaste_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuEditPaste_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuEditSelectAll_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuEditSelectAll_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuEditSelectAll_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuEditDel_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuEditDel_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuEditDel_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuEditCut_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuEditCut_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuEditCut_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuEditAutoWrap_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuEditAutoWrap_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuEditAutoWrap_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuFormatColor_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuFormatColor_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFormatColor_actionPerformed(actionEvent);
}
}
class FrameJSB_jMenuHelpDocument_ActionAdapter implements ActionListener {
FrameJSB adaptee;
FrameJSB_jMenuHelpDocument_ActionAdapter(FrameJSB adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuHelpDocument_actionPerformed(actionEvent);
}
}
FrameJSB_AboutBox.java
package jsb;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* <p>Title: 流星絮语记事本</p>
*
* <p>Description: 记事本</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: 西昌学院</p>
*
* @author 冯立彬
* @version 1.0
*/
public class FrameJSB_AboutBox extends JDialog implements ActionListener {
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel insetsPanel1 = new JPanel();
JPanel insetsPanel2 = new JPanel();
JPanel insetsPanel3 = new JPanel();
JButton button1 = new JButton();
JLabel imageLabel = new JLabel();
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JLabel label3 = new JLabel();
JLabel label4 = new JLabel();
ImageIcon image1 = new ImageIcon();
BorderLayout borderLayout1 = new BorderLayout();
BorderLayout borderLayout2 = new BorderLayout();
FlowLayout flowLayout1 = new FlowLayout();
GridLayout gridLayout1 = new GridLayout();
String product = "流星絮语记事本";
String version = "1.0";
String copyright = "Copyright (c) 2005";
String comments = "记事本";
public FrameJSB_AboutBox(Frame parent) {
super(parent);
try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
public FrameJSB_AboutBox() {
this(null);
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
image1 = new ImageIcon(jsb.FrameJSB.class.getResource("about.png"));
imageLabel.setIcon(image1);
setTitle("关于记事本");
panel1.setLayout(borderLayout1);
panel2.setLayout(borderLayout2);
insetsPanel1.setLayout(flowLayout1);
insetsPanel2.setLayout(flowLayout1);
insetsPanel2.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
gridLayout1.setRows(4);
gridLayout1.setColumns(1);
label1.setText(product);
label2.setText(version);
label3.setText(copyright);
label4.setText(comments);
insetsPanel3.setLayout(gridLayout1);
insetsPanel3.setBorder(BorderFactory.createEmptyBorder(10, 60, 10, 10));
button1.setText("OK");
button1.addActionListener(this);
insetsPanel2.add(imageLabel, null);
panel2.add(insetsPanel2, BorderLayout.WEST);
getContentPane().add(panel1, null);
insetsPanel3.add(label1, null);
insetsPanel3.add(label2, null);
insetsPanel3.add(label3, null);
insetsPanel3.add(label4, null);
panel2.add(insetsPanel3, BorderLayout.CENTER);
insetsPanel1.add(button1, null);
panel1.add(insetsPanel1, BorderLayout.SOUTH);
panel1.add(panel2, BorderLayout.NORTH);
setResizable(true);
}
/**
* Close the dialog on a button event.
*
* @param actionEvent ActionEvent
*/
public void actionPerformed(ActionEvent actionEvent) {
if (actionEvent.getSource() == button1) {
dispose();
}
}
}
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks |
'Isn't this fun?'
|
‘Isn’t this fun?’ |
Quotes |
"Isn't this fun?"
|
“Isn’t this fun?” |
Dashes |
-- is en-dash, --- is em-dash
|
– is en-dash, — is em-dash |
创建一个自定义列表
- Markdown
- Text-to-HTML conversion tool
- Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ(z)=∫0∞tz−1e−tdt .\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
ganttdateFormat YYYY-MM-DDtitle Adding GANTT diagram functionality to mermaidsection 现有任务已完成 :done, des1, 2014-01-06,2014-01-08进行中 :active, des2, 2014-01-09, 3d计划一 : des3, after des2, 5d计划二 : des4, after des3, 5d
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
mermaid语法说明 ↩︎
注脚的解释 ↩︎
我寫的JAVA記事本源程序相关推荐
- [日文]中国語のコンピュータ用語を紹介する記事
はじめに この記事はアドベントカレンダー の12月5日の記事です. 中国語を勉強したことがない人向けに中国語のコンピュータ用語を紹介していきます.中国語は.面白い・実用的・覚えやすい.と一石三鳥なので ...
- 利用Java编写手机应用程序PalmOS基础篇
作者:王森 相信大家一定會發現,最近到處都是嵌入式系統(embedded system)的新聞.而目前也已經有不少國內外廠商推出各式各樣的PDA(Personal Digital Assistant, ...
- java 程序增加 防盗_防盗Java EE –保护Java EE企业应用程序的安全
java 程序增加 防盗 Øredev离我们仅有几天的路程,我受邀作了两次演讲. 其中之一是关于我最喜欢的主题:安全性和Java EE. 它旨在实现两个目标. 一方面向典型的Java EE开发人员介绍 ...
- java ee的小程序_Java EE 8 –为更多设备提供更多应用程序
java ee的小程序 如果我不喜欢夏天的一件事,那就是事实是没有太多要分享或谈论的新闻. 谁决定将Java Day Tokyo置于今年的这个无聊的时间里,做得很好,并给了我一个写关于新的和即将到来的 ...
- 防盗Java EE –保护您的Java EE企业应用程序
Øredev离我们仅有几天的路程,我受邀作了两次演讲. 其中之一是关于我最喜欢的主题:安全性和Java EE. 它旨在实现两个目标. 一方面向典型的Java EE开发人员介绍整个应用程序安全过程和主要 ...
- Java 哪些事最困扰你?
相信在学Java编程的小伙伴都会遇到很多的问题,特别是当我们写完程序的时候突然报个错,然后找了半天,却没发现哪里报错了,"我在哪","我在干什么"," ...
- 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档)
计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档) 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...
- 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)
计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...
- 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...
最新文章
- 一处 ADO.NET Entity Framework 的逻辑BUG
- 软件需求工程与UML建模——第九组原型系统总结
- Python剑指offer:和为s的连续整数序列
- HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理
- 跟公务员稍稍的接触了下
- git 创建webpack项目_Webpack入门:从安装到配置
- C++ 内建函数对象
- sparksql一些指标
- python获取局域网通过guest开放的软件_python构建SSH僵尸网络
- Battery Charging Specification 1.2 中文详解 来源:www.chengxuyuans.com
- 第一次做socket的一些心得
- 函数的基本知识点总结(附实例)
- .net中哈希表的使用 Hashtable
- PDPS教程之工艺仿真必备软件
- 私教课程 Day2 2017-09-14
- embedding lookup函数
- Qt中QOpengl的QMatrix4x4矩阵作用原理以及使用方法
- 5G通信下FBMC-OQAM的误码率仿真
- 从进程中获取QQ号码
- 徐敏 计算机科学教育,计算机学院举办梦想公开课暨2019年暑期社会实践动员大会...
热门文章
- 云图说|不要小看不起眼的日志,“小日志,大作用”
- 【华为云技术分享】避坑指南:关于SPDK问题分析过程
- SpringBoot和缓存
- 不改变分辨率转换PDF为png图片的方法汇总
- (组合数学笔记)递推关系小结及典型题分析
- 【李宏毅机器学习】Unsupervised Learning - Word Embedding 无监督学习 - 词嵌入(p22) 学习笔记
- 计算机图形学E4——OpenGL 区域种子填充
- latex中正文前出现一页空白页,且占正文页数
- centos7.0查看IP
- Spark Streaming和Flume集成指南V1.4.1