📄 kodit.java
字号:
editArea.copy();
String selected=editArea.getSelectedText();
if(selected.equals(""))return;
StringSelection clipString=new StringSelection(selected);
clipBoard.setContents(clipString,clipString);
}
});
undoItem.setEnabled(false);
ImageIcon saveIcon=new ImageIcon("ICON/save.gif");
JButton saveButton=new JButton(saveIcon);
saveButton.addActionListener(new ActionListener()
{ //addItemActionListener
public void actionPerformed(ActionEvent e)
{
save();
redoItem.setEnabled(false);
undoItem.setEnabled(false);
}
});
toolBar.add(newButton);
toolBar.add(saveButton);
toolBar.addSeparator();
toolBar.add(copyButton);
JMenuBar menuBar=new JMenuBar();
JMenu fileMenu=new JMenu("File");
JMenuItem newItem=new JMenuItem("New");
newItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){
saveOnNew();
editArea.setText("");
Kodit.this.setTitle("Untitled1.txt");
currentFile=new File("Untitled1.txt");
}
});
fileMenu.add(newItem);
JMenuItem openItem=new JMenuItem("open");
openItem.addActionListener(new ActionListener()
{ //openItem ActionListener
public void actionPerformed(ActionEvent e)
{
JFileChooser fileChooser=new JFileChooser(".");
fileChooser.addChoosableFileFilter(new FileFilterImpl(new String[]{"txt","xml","html"},"Text Files(*.txt,*.xml,*.html)"));
fileChooser.addChoosableFileFilter(new FileFilterImpl(new String[]{"h","c","java","cpp"},"C/C++/java(*.c,*.cpp,*.h)"));
fileChooser.addChoosableFileFilter(new FileFilterImpl(new String[]{"ini","bat","log"},"Other(*.bat,*.ini,*.log)"));
int r=fileChooser.showOpenDialog(Kodit.this);
if(r==JFileChooser.APPROVE_OPTION)
{
File file=fileChooser.getSelectedFile();
currentFile=file;
Kodit.this.setTitle(file.getName());
currentFile=file;
try{
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String s="";
editArea.setText(s);
while((s=br.readLine())!=null)
{
editArea.append(s+"\n");
}
br.close();
}catch(IOException except){
except.printStackTrace();
}
}
}
});
fileMenu.add(openItem);
JMenuItem saveItem=new JMenuItem("save");
saveItem.addActionListener(new ActionListener(){ //addItemActionListener
public void actionPerformed(ActionEvent e)
{
save();
redoItem.setEnabled(false);
undoItem.setEnabled(false);
}
});
fileMenu.add(saveItem);
JMenuItem saveAsItem=new JMenuItem("save as"); //save as
saveAsItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
saveAs();
}
});
fileMenu.add(saveAsItem);
fileMenu.addSeparator();
JMenuItem exitItem=new JMenuItem("exit");
exitItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
saveOnExit();
}
});
fileMenu.add(exitItem);
menuBar.add(fileMenu);
JMenu editMenu=new JMenu("Edit");
undoItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
undoManager.undo();
}catch(Exception except){
except.printStackTrace();
}
updateMenu(undoItem,redoItem);
}
});
undoItem.setEnabled(false);
redoItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
undoManager.redo();
}catch(Exception except){
except.printStackTrace();
}
updateMenu(undoItem,redoItem);
}
});
redoItem.setEnabled(false);
editArea.getDocument().addUndoableEditListener(new UndoableEditListener(){
public void undoableEditHappened(UndoableEditEvent e)
{
undoManager.addEdit(e.getEdit());
updateMenu(undoItem,redoItem);
}
});
JMenuItem cutItem=new JMenuItem("cut");
ImageIcon pasteIcon=new ImageIcon("ICON/paste.gif");
JButton pasteButton=new JButton(pasteIcon);
pasteButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Transferable clipData=clipBoard.getContents(Kodit.this);
try{
String clipString=(String)clipData.getTransferData(DataFlavor.stringFlavor);
editArea.replaceRange(clipString,editArea.getSelectionStart(),editArea.getSelectionEnd());
}catch(Exception except){
except.printStackTrace();
}
}
});
toolBar.add(pasteButton);
ImageIcon deleteIcon=new ImageIcon("ICON/delete.gif");
JButton deleteButton=new JButton(deleteIcon);
deleteButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String delString=editArea.getSelectedText();
if(delString.equals(""))return;
editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
}
});
toolBar.add(deleteButton);
JMenuItem copyItem=new JMenuItem("copy");
JMenuItem pasteItem=new JMenuItem("paste");
cutItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
String selected=editArea.getSelectedText();
if(selected==null)
return;
StringSelection clipString=new StringSelection(selected);
clipBoard.setContents(clipString,clipString);
// editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
}
});
copyItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
editArea.copy();
String selected=editArea.getSelectedText();
if(selected.equals(""))return;
StringSelection clipString=new StringSelection(selected);
clipBoard.setContents(clipString,clipString);
}
});
pasteItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Transferable clipData=clipBoard.getContents(Kodit.this);
try{
String clipString=(String)clipData.getTransferData(DataFlavor.stringFlavor);
editArea.replaceRange(clipString,editArea.getSelectionStart(),editArea.getSelectionEnd());
}catch(Exception except){
except.printStackTrace();
}
}
});
JMenuItem deleteItem=new JMenuItem("delete");
deleteItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String delString=editArea.getSelectedText();
if(delString.equals(""))return;
editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
}
});
editMenu.add(undoItem);
editMenu.add(redoItem);
editMenu.addSeparator();
editMenu.add(copyItem);
editMenu.add(pasteItem);
editMenu.add(cutItem);
editMenu.add(deleteItem);
JMenu configMenu=new JMenu("Tool");
JMenuItem lowItem=new JMenuItem("LowerCase");
lowItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String lowString=editArea.getSelectedText();
if(lowString.equals(""))return;
lowString=lowString.toLowerCase();
editArea.replaceRange(lowString,editArea.getSelectionStart(),editArea.getSelectionEnd());
}
});
JMenuItem selectAllItem=new JMenuItem("SelectAll");
selectAllItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
editArea.selectAll();
}
});
editMenu.addSeparator();
editMenu.add(selectAllItem);
menuBar.add(editMenu);
JMenuItem upItem=new JMenuItem("UpperCase");
upItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String lowString=editArea.getSelectedText();
if(lowString.equals(""))return;
lowString=lowString.toUpperCase();
editArea.replaceRange(lowString,editArea.getSelectionStart(),editArea.getSelectionEnd());
}
});
JMenuItem fontItem=new JMenuItem("font");
fontItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
FontChooser fontChooser=new FontChooser(Kodit.this);
fontChooser.show();
SimpleAttributeSet attributes=fontChooser.getAttributes();
if(attributes!=null){
boolean bold=StyleConstants.isBold(attributes);
boolean italic=StyleConstants.isItalic(attributes);
String fontName=StyleConstants.getFontFamily(attributes);
int size=StyleConstants.getFontSize(attributes);
Color color=StyleConstants.getForeground(attributes);
editArea.setFont(new Font(fontName,(bold?Font.BOLD:0)+(italic?Font.ITALIC:0),size));
editArea.setForeground(color);
}
}
});
configMenu.add(upItem);
configMenu.add(lowItem);
configMenu.addSeparator();
configMenu.add(fontItem);
menuBar.add(configMenu);
JMenu help=new JMenu("help");
JMenuItem about=new JMenuItem("about");
about.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(Kodit.this,"Kodit 0.01a by kod@TJU\nThank you for using!\nGreat thanks to zation@TJU");
}
});
help.add(about);
menuBar.add(help);
setJMenuBar(menuBar);
editArea.setFont(new Font("TimesNewRoman",0,14));
}
private void updateMenu(JMenuItem undo,JMenuItem redo)
{
undo.setEnabled(undoManager.canUndo());
redo.setEnabled(undoManager.canRedo());
}
static public void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
Kodit test=new Kodit();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -