jButton1.setToolTipText("Open File");
jButton2.setIcon(image2);
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jButton2.setToolTipText("Close File");
jButton3.setIcon(image3);
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton3_actionPerformed(e);
}
});
jButton3.setToolTipText("Help");
jTextArea1.setLineWrap(true);
jMenuFileOpen.setText("Open....");
jMenuFileOpen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileOpen_actionPerformed(e);
}
});
jMenuFileNew.setText("New");
jMenuFileNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileNew_actionPerformed(e);
}
});
jMenuFileSave.setText("Save");
jMenuFileSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileSave_actionPerformed(e);
}
});
jMenuFileSaveas.setText("Save As...");
jMenuFileSaveas.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileSaveas_actionPerformed(e);
}
});
jMenuEdit.setText("Edit");
jMenuEditFont.setText("Font....");
jMenuEditFont.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditFont_actionPerformed(e);
}
});
jMenuEditColor.setText("Foreground Color");
jMenuEditColor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditColor_actionPerformed(e);
}
});
jMenuEditBColor.setText("Background Color");
jMenuEditBColor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditBColor_actionPerformed(e);
}
});
fontChooser1.setFrame(this);
fontChooser1.setTitle("选择字体");
document1=jTextArea1.getDocument();
document1.addDocumentListener(new javax.swing.event.DocumentListener() {
public void insertUpdate(DocumentEvent e) {
document1_insertUpdate(e);
}
public void removeUpdate(DocumentEvent e) {
document1_removeUpdate(e);
}
public void changedUpdate(DocumentEvent e) {
document1_changedUpdate(e);
}
});
jButton2.setIcon(image2);
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jButton2.setToolTipText("Close File");
jButton3.setIcon(image3);
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton3_actionPerformed(e);
}
});
jButton3.setToolTipText("Help");
jTextArea1.setLineWrap(true);
jMenuFileOpen.setText("Open....");
jMenuFileOpen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileOpen_actionPerformed(e);
}
});
jMenuFileNew.setText("New");
jMenuFileNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileNew_actionPerformed(e);
}
});
jMenuFileSave.setText("Save");
jMenuFileSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileSave_actionPerformed(e);
}
});
jMenuFileSaveas.setText("Save As...");
jMenuFileSaveas.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileSaveas_actionPerformed(e);
}
});
jMenuEdit.setText("Edit");
jMenuEditFont.setText("Font....");
jMenuEditFont.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditFont_actionPerformed(e);
}
});
jMenuEditColor.setText("Foreground Color");
jMenuEditColor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditColor_actionPerformed(e);
}
});
jMenuEditBColor.setText("Background Color");
jMenuEditBColor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditBColor_actionPerformed(e);
}
});
fontChooser1.setFrame(this);
fontChooser1.setTitle("选择字体");
document1=jTextArea1.getDocument();
document1.addDocumentListener(new javax.swing.event.DocumentListener() {
public void insertUpdate(DocumentEvent e) {
document1_insertUpdate(e);
}
public void removeUpdate(DocumentEvent e) {
document1_removeUpdate(e);
}
public void changedUpdate(DocumentEvent e) {
document1_changedUpdate(e);
}
});
jMenuEditUndo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditUndo_actionPerformed(e);
}
});
jMenuEditRedo.setText("Redo");
jMenuEditRedo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditRedo_actionPerformed(e);
}
});
jMenuEditCopy.setText("Copy");
jMenuEditCopy.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditCopy_actionPerformed(e);
}
});
jMenuEditCut.setText("Cut");
jMenuEditCut.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditCut_actionPerformed(e);
}
});
jMenuEditPaste.setText("Paste");
jMenuEditSelAll.setText("Select All");
jMenuEditSelAll.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuEditSelAll_actionPerformed(e);
}
});
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
jMenuFile.add(jMenuFileNew);
jMenuFile.add(jMenuFileOpen);
jMenuFile.add(jMenuFileSave);
jMenuFile.add(jMenuFileSaveas);
jMenuFile.addSeparator();
jMenuFile.add(jMenuFileExit);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuEdit);
jMenuBar1.add(jMenuHelp);
this.setJMenuBar(jMenuBar1);
contentPane.add(jToolBar, BorderLayout.NORTH);
contentPane.add(statusBar, BorderLayout.SOUTH);
contentPane.add(TextScrollPane, BorderLayout.CENTER);
TextScrollPane.getViewport().add(jTextArea1, null);
jMenuEdit.add(jMenuEditUndo);
jMenuEdit.add(jMenuEditRedo);
jMenuEdit.add(jMenuEditCopy);
jMenuEdit.add(jMenuEditCut);
jMenuEdit.add(jMenuEditPaste);
jMenuEdit.addSeparator();
jMenuEdit.add(jMenuEditSelAll);
jMenuEdit.add(jMenuEditFont);
jMenuEdit.add(jMenuEditColor);
jMenuEdit.add(jMenuEditBColor);
document1 = jTextArea1.getDocument();
}
/**File | Exit action performed*/
public void jMenuFileExit_actionPerformed(ActionEvent e) {
if (!okToAbandon()) { return;}
System.exit(0);
}
/**Help | About action performed*/
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
TextEditorFrame_AboutBox dlg = new TextEditorFrame_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.show();
}
/**Overridden so we can exit when window is closed*/
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuFileExit_actionPerformed(null);
}
} void jMenuFileNew_actionPerformed(ActionEvent e) {
if(okToAbandon()){
jTextArea1.setText("");
currentFileName = null;
saveNeeded = false;
updateTitle();
} }
openFile();
} void jButton1_actionPerformed(ActionEvent e) {
openFile();
} void jMenuFileSave_actionPerformed(ActionEvent e) {
saveFile();
} void jButton2_actionPerformed(ActionEvent e) {
saveFile();
} void jMenuFileSaveas_actionPerformed(ActionEvent e) {
saveAsFile();
} void jButton3_actionPerformed(ActionEvent e) { } void this_windowClosing(WindowEvent e) {
if (!okToAbandon()) { return;}
System.exit(0);
} void jMenuEditFont_actionPerformed(ActionEvent e) {
fontChooser1.setSelectedFont(jTextArea1.getFont());
if (fontChooser1.showDialog()) {
jTextArea1.setFont(fontChooser1.getSelectedFont());
}
this.repaint();
jTextArea1.repaint();
} void jMenuEditColor_actionPerformed(ActionEvent e) {
Color color = JColorChooser.showDialog(this,"Foreground Color",jTextArea1.getForeground());
if (color != null) {
jTextArea1.setForeground(color);
}
this.repaint();
} void jMenuEditBColor_actionPerformed(ActionEvent e) {
Color color = JColorChooser.showDialog(this,"Background Color",jTextArea1.getBackground());
if (color != null) {
jTextArea1.setBackground(color);
}
this.repaint();
}
void openFile(){
if (!okToAbandon()) {
return;
}
if(JFileChooser.APPROVE_OPTION== jFileChooser1.showOpenDialog(this)) {
openSelectedFile(jFileChooser1.getSelectedFile().getPath());
}
this.repaint();
}
void openSelectedFile(String fileName){
try{
File file = new File(fileName);
int fileSize = (int)file.length();
int charsReaded = 0;
FileReader in = new FileReader(file);
char[] data = new char[fileSize];
while(in.ready()) {
charsReaded += in.read(data, charsReaded, fileSize - charsReaded);
}
in.close();
jTextArea1.setText(new String(data, 0, charsReaded));
this.currentFileName = fileName;
this.saveNeeded = false;
statusBar.setText("打开 "+fileName);
updateTitle();
}
catch (IOException e){
statusBar.setText("Error opening "+fileName);
}
}
boolean okToAbandon() {
if (!saveNeeded) {
return true;
}
JTextField txtUserName=new JTextField();
JPasswordField extPwd=new JPasswordField();
Object[] msg=new Object[]{new String("请输入用户名"),txtUserName,new String("口令"),extPwd};;
int value=JOptionPane.showConfirmDialog(this, "保存文件吗?", "文本编辑", JOptionPane.YES_NO_CANCEL_OPTION) ;
JOptionPane.showConfirmDialog(this,msg, "登陆",JOptionPane. OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE) ;
switch (value) {
case JOptionPane.YES_OPTION: return saveFile();
case JOptionPane.NO_OPTION: return true;
case JOptionPane.CANCEL_OPTION:
default: return false;
}
}
void updateTitle(){
String title;
if (currentFileName == null) {
title = "未命名文件";
}else {
title = currentFileName;
}
if(saveNeeded == true){
title = "* "+title;
}
title = "文本编辑器- " + title;
this.setTitle(title);
}
boolean saveFile() {
if (currentFileName == null) {
return saveAsFile();
}
try{
File file = new File (currentFileName);
FileWriter out = new FileWriter(file);
String text = jTextArea1.getText();
out.write(text);
out.close();
this.saveNeeded = false;
updateTitle();
return true;
}
catch (IOException e) {
statusBar.setText("存储"+currentFileName+ "出错");
}
return false;
}
boolean saveAsFile() {
this.repaint();
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)){
currentFileName = jFileChooser1.getSelectedFile().getPath();
this.repaint();
return saveFile();
}
else {
this.repaint();
return false;
}
} void document1_changedUpdate(DocumentEvent e) {
saveNeeded = true;
updateTitle(); } void this_ancestorResized(HierarchyEvent e) { } void document1_insertUpdate(DocumentEvent e) {
saveNeeded = true;
updateTitle(); } void document1_removeUpdate(DocumentEvent e) {
saveNeeded = true;
updateTitle(); }
void document1_undoableEditHappened(UndoableEditEvent e) {
edit.addEdit(e.getEdit()) ;
}
void jMenuEditCopy_actionPerformed(ActionEvent e) {
String selText=jTextArea1.getSelectedText();
if(selText!=null ){
StringSelection selection=new StringSelection(selText);
sysClipboard.setContents(selection,null);
}
} void jMenuEditCut_actionPerformed(ActionEvent e) {
String selText=jTextArea1.getSelectedText();
if(selText!=null ){
StringSelection selection=new StringSelection(selText);
sysClipboard.setContents(selection,null);
jTextArea1.replaceSelection(" ");
}
}
void jMenuEditUndo_actionPerformed(ActionEvent e) {
edit.undo();
}
void jMenuEditRedo_actionPerformed(ActionEvent e) {
edit.redo();
}
void jMenuEdit_focusGained(FocusEvent e) { //这里是控制失效的 boolean selFlag=false;
if(jTextArea1.getSelectedText() !=null){
selFlag=true;
}
jMenuEditCopy.setEnabled(selFlag) ;
jMenuEditCut.setEnabled(selFlag) ;
boolean copyedFlag=false;
if(sysClipboard.getContents(this)!=null){
copyedFlag=true;
}
jMenuEditPaste.setEnabled(copyedFlag);
jMenuEditUndo.setEnabled(edit.canUndo());
jMenuEditRedo.setEnabled(edit.canRedo() );
} void jMenuEditSelAll_actionPerformed(ActionEvent e) {
jTextArea1.selectAll();
}}
undo redo copy cut paste 选项 出现了一些毛病 按理说没有选中字符
copy cut paste 因该失效的 但却没有还有undo redo 刚开始也应该是灰色的 控制代码如下
void jMenuEdit_focusGained(FocusEvent e) { //这里是控制失效的 boolean selFlag=false;
if(jTextArea1.getSelectedText() !=null){
selFlag=true;
}
jMenuEditCopy.setEnabled(selFlag) ;
jMenuEditCut.setEnabled(selFlag) ;
boolean copyedFlag=false;
if(sysClipboard.getContents(this)!=null){
copyedFlag=true;
}
jMenuEditPaste.setEnabled(copyedFlag);
jMenuEditUndo.setEnabled(edit.canUndo());
jMenuEditRedo.setEnabled(edit.canRedo() );
}
代码没错 但为什么不行啊