首页 > > 详细

讲解Java、Java讲解留学生、讲解Java程序、Java调试、解析Java编程

package myproject;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import java.io.*;
import javax.swing.undo.*;
//import javax.swing.border.*;
import javax.swing.*;
//import javax.swing.text.*;
import javax.swing.event.*;
import java.awt.datatransfer.*;
public class Example1 extends JFrame. implements ActionListener,DocumentListener{

//

//
JMenu fileMenu,editMenu,formatMenu,viewMenu,helpMenu;

//""
JMenuItem fileMenu_New,fileMenu_Open,fileMenu_Save,fileMenu_SaveAs,fileMenu_PageSetup,fileMenu_Print,fileMenu_Exit;
//""
JMenuItem editMenu_Undo,editMenu_Redo,editMenu_Cut,editMenu_Copy,editMenu_Paste,editMenu_Delete,editMenu_Find,editMenu_FindNext,editMenu_Replace,
editMenu_GoTo,editMenu_SelectAll,editMenu_TimeDate;

//""
JCheckBoxMenuItem formatMenu_LineWrap;
JMenu formatMenu_Color;
JMenuItem formatMenu_Font,formatMenu_Color_FgColor,formatMenu_Color_BgColor;

//""
JCheckBoxMenuItem viewMenu_Status;

//""
JMenuItem helpMenu_HelpTopics,helpMenu_About;

//
JTextArea editArea;

//
JLabel statusLabel;

//
JPopupMenu popupMenu;
JMenuItem popupMenu_Undo,popupMenu_Redo,popupMenu_Cut,popupMenu_Copy,popupMenu_Paste,popupMenu_Delete,popupMenu_SelectAll;
//
Toolkit toolKit=Toolkit.getDefaultToolkit();
Clipboard clipBoard=toolKit.getSystemClipboard();
//
boolean isNewFile=true; //()
File currentFile; //
String oldValue; //,
JButton fontOkButton; //""
//
JButton newButton,openButton,saveButton,saveAsButton,printButton,undoButton,redoButton,
cutButton,copyButton,pasteButton,deleteButton,searchButton,timeButton,fontButton,
boldButton,italicButton,fgcolorButton,bgcolorButton,helpButton;
//
protected UndoManager undo = new UndoManager();
protected UndoableEditListener undoHandler = new UndoHandler();
//
protected Font defaultFont=new Font("",Font.PLAIN,12);

//
public Example1()
{
super("Windows");

//
Container container=getContentPane();
//
JMenuBar menuBar = new JMenuBar();

//
JMenu fileMenu = new JMenu("(F)", true);
fileMenu.setMnemonic('F'); //ALT+F
fileMenu_New = new JMenuItem("(N)", 'N');
fileMenu_New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
fileMenu_New.addActionListener(this);
fileMenu_Open = new JMenuItem("(O)...", 'O');
fileMenu_Open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
fileMenu_Open.addActionListener(this);
fileMenu_Save = new JMenuItem("(S)", 'S');
fileMenu_Save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
fileMenu_Save.addActionListener(this);
fileMenu_SaveAs = new JMenuItem("(A)...", 'A');
fileMenu_SaveAs.addActionListener(this);
fileMenu_PageSetup = new JMenuItem("(U)...",'U');
fileMenu_PageSetup.addActionListener(this);
fileMenu_Print = new JMenuItem("(P)...", 'P');
fileMenu_Print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK));
fileMenu_Print.addActionListener(this);
fileMenu_Exit = new JMenuItem("(X)",'X');
fileMenu_Exit.addActionListener(this);
//
JMenu editMenu = new JMenu("(E)", true);
editMenu.setMnemonic('E');//ALT+E
//,、、、
editMenu.addMenuListener(new MenuListener()
{ public void menuCanceled(MenuEvent e)//
{ checkMenuItemEnabled();//、、、
}
public void menuDeselected(MenuEvent e)//
{ checkMenuItemEnabled();//、、、
}
public void menuSelected(MenuEvent e)//
{ checkMenuItemEnabled();//、、、
}
});
editMenu_Undo = new JMenuItem("(U)",'U');
editMenu_Undo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK));
editMenu_Undo.addActionListener(this);
editMenu_Undo.setEnabled(false);

editMenu_Redo = new JMenuItem("(R)",'R');
editMenu_Redo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
editMenu_Redo.addActionListener(this);
editMenu_Redo.setEnabled(false);

editMenu_Cut = new JMenuItem("(T)",'T');
editMenu_Cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
editMenu_Cut.addActionListener(this);

editMenu_Copy = new JMenuItem("(C)",'C');
editMenu_Copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
editMenu_Copy.addActionListener(this);

editMenu_Paste = new JMenuItem("(P)",'P');
editMenu_Paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK));
editMenu_Paste.addActionListener(this);

editMenu_Delete = new JMenuItem("(L)",'L');
editMenu_Delete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
editMenu_Delete.addActionListener(this);

editMenu_Find = new JMenuItem("(F)...",'F');
editMenu_Find.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK));
editMenu_Find.addActionListener(this);

editMenu_FindNext = new JMenuItem("(N)",'N');
editMenu_FindNext.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
editMenu_FindNext.addActionListener(this);

editMenu_Replace = new JMenuItem("(R)...",'R');
editMenu_Replace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_MASK));
editMenu_Replace.addActionListener(this);

editMenu_GoTo = new JMenuItem("(G)...",'G');
editMenu_GoTo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK));
editMenu_GoTo.addActionListener(this);

editMenu_SelectAll = new JMenuItem("",'A');
editMenu_SelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
editMenu_SelectAll.addActionListener(this);

editMenu_TimeDate = new JMenuItem("/(D)",'D');
editMenu_TimeDate.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
editMenu_TimeDate.addActionListener(this);


//
JMenu formatMenu = new JMenu("(O)", true);
formatMenu.setMnemonic('O');//ALT+O

formatMenu_LineWrap = new JCheckBoxMenuItem("(W)");
formatMenu_LineWrap.setMnemonic('W');
formatMenu_LineWrap.setState(true);
formatMenu_LineWrap.addActionListener(this);
formatMenu_Font = new JMenuItem("(F)...",'F');
formatMenu_Font.addActionListener(this);
formatMenu_Color = new JMenu("");
formatMenu_Color_FgColor=new JMenuItem("");
formatMenu_Color_FgColor.addActionListener(this);
formatMenu_Color_BgColor=new JMenuItem("");
formatMenu_Color_BgColor.addActionListener(this);

//
JMenu viewMenu = new JMenu("(V)", true);
viewMenu.setMnemonic('V');//ALT+V

viewMenu_Status = new JCheckBoxMenuItem("(S)");
viewMenu_Status.setMnemonic('S');
viewMenu_Status.setState(true);
viewMenu_Status.addActionListener(this);


//
JMenu helpMenu = new JMenu("(H)", true);
helpMenu.setMnemonic('H');//ALT+H
helpMenu_HelpTopics = new JMenuItem("(H)",'H');
helpMenu_HelpTopics.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0));
helpMenu_HelpTopics.addActionListener(this);

helpMenu_About = new JMenuItem("(A)",'A');
helpMenu_About.addActionListener(this);

//""
menuBar.add(fileMenu);
fileMenu.add(fileMenu_New);
fileMenu.add(fileMenu_Open);
fileMenu.add(fileMenu_Save);
fileMenu.add(fileMenu_SaveAs);
fileMenu.addSeparator(); //
fileMenu.add(fileMenu_PageSetup);
fileMenu.add(fileMenu_Print);
fileMenu.addSeparator(); //
fileMenu.add(fileMenu_Exit);

//""
menuBar.add(editMenu);
editMenu.add(editMenu_Undo);
editMenu.add(editMenu_Redo);
editMenu.addSeparator(); //
editMenu.add(editMenu_Cut);
editMenu.add(editMenu_Copy);
editMenu.add(editMenu_Paste);
editMenu.add(editMenu_Delete);
editMenu.addSeparator(); //
editMenu.add(editMenu_Find);
editMenu.add(editMenu_FindNext);
editMenu.add(editMenu_Replace);
editMenu.add(editMenu_GoTo);
editMenu.addSeparator(); //
editMenu.add(editMenu_SelectAll);
editMenu.add(editMenu_TimeDate);

//""
menuBar.add(formatMenu);
formatMenu.add(formatMenu_LineWrap);
formatMenu.add(formatMenu_Font);
formatMenu.addSeparator();//
formatMenu.add(formatMenu_Color);
formatMenu_Color.add(formatMenu_Color_FgColor);
formatMenu_Color.add(formatMenu_Color_BgColor);

//""
menuBar.add(viewMenu);
viewMenu.add(viewMenu_Status);

//""
menuBar.add(helpMenu);
helpMenu.add(helpMenu_HelpTopics);
helpMenu.addSeparator();//
helpMenu.add(helpMenu_About);
//
this.setJMenuBar(menuBar);

//
editArea=new JTextArea(20,50);
JScrollPane scroller=new JScrollPane(editArea);
//
scroller.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroller.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
container.add(scroller,BorderLayout.CENTER);//
editArea.setWrapStyleWord(true); //
editArea.setLineWrap(true); //true,""
editArea.setFont(defaultFont); //
editArea.setBackground(Color.white); //
editArea.setForeground(Color.black); //
ldValue=editArea.getText(); //

//
editArea.getDocument().addUndoableEditListener(undoHandler);
editArea.getDocument().addDocumentListener(this);

//
popupMenu=new JPopupMenu();
popupMenu_Undo=new JMenuItem("(U)",'U');
popupMenu_Redo=new JMenuItem("(R)",'R');
popupMenu_Cut =new JMenuItem("(T)",'T');
popupMenu_Copy=new JMenuItem("(C)",'C');
popupMenu_Paste=new JMenuItem("(P)",'P');
popupMenu_Delete=new JMenuItem("(D)",'D');
popupMenu_SelectAll=new JMenuItem("(A)",'A');
popupMenu_Undo.setEnabled(false); //
popupMenu_Redo.setEnabled(false); //

//
popupMenu.add(popupMenu_Undo);
popupMenu.add(popupMenu_Redo);
popupMenu.addSeparator();
popupMenu.add(popupMenu_Cut);
popupMenu.add(popupMenu_Copy);
popupMenu.add(popupMenu_Paste);
popupMenu.add(popupMenu_Delete);
popupMenu.addSeparator();
popupMenu.add(popupMenu_SelectAll);

//
popupMenu_Undo.addActionListener(this);
popupMenu_Redo.addActionListener(this);
popupMenu_Cut.addActionListener(this);
popupMenu_Copy.addActionListener(this);
popupMenu_Paste.addActionListener(this);
popupMenu_Delete.addActionListener(this);
popupMenu_SelectAll.addActionListener(this);

//
editArea.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e)
{
checkForTriggerEvent(e);
}

public void mouseReleased(MouseEvent e)
{
checkForTriggerEvent(e);
}

private void checkForTriggerEvent(MouseEvent e)
{
if(e.isPopupTrigger())//
popupMenu.show(e.getComponent(),e.getX(),e.getY());// X、Y
checkMenuItemEnabled(); //、、、
editArea.requestFocus(); //
}
});//


//
JPanel toolBar=new JPanel();
toolBar.setLayout(new FlowLayout(FlowLayout.LEFT));

Icon newIcon=new ImageIcon("Icons/new.gif");
Icon penIcon=new ImageIcon("Icons/open.gif");
Icon saveIcon=new ImageIcon("Icons/save.gif");
Icon saveAsIcon=new ImageIcon("Icons/saveas.gif");
Icon printIcon=new ImageIcon("Icons/print.gif");
Icon undoIcon=new ImageIcon("Icons/undo.gif");
Icon redoIcon=new ImageIcon("Icons/redo.gif");
Icon cutIcon=new ImageIcon("Icons/cut.gif");
Icon copyIcon=new ImageIcon("Icons/copy.gif");
Icon pasteIcon=new ImageIcon("Icons/paste.gif");
Icon deleteIcon=new ImageIcon("Icons/delete.gif");
Icon searchIcon=new ImageIcon("Icons/search.gif");
Icon timeIcon=new ImageIcon("Icons/time.gif");
Icon fontIcon=new ImageIcon("Icons/font.gif");
Icon boldIcon=new ImageIcon("Icons/bold.gif");
Icon italicIcon=new ImageIcon("Icons/italic.gif");
Icon bgcolorIcon=new ImageIcon("Icons/bgcolor.gif");
Icon fgcolorIcon=new ImageIcon("Icons/fgcolor.gif");
Icon helpIcon=new ImageIcon("Icons/help.gif");

newButton= new JButton(newIcon);
penButton=new JButton(openIcon);
saveButton= new JButton(saveIcon);
saveAsButton=new JButton(saveAsIcon);
printButton=new JButton(printIcon);
undoButton=new JButton(undoIcon);
undoButton.setEnabled(false);
redoButton=new JButton(redoIcon);
redoButton.setEnabled(false);
cutButton=new JButton(cutIcon);
cutButton.setEnabled(false);
copyButton=new JButton(copyIcon);
copyButton.setEnabled(false);
pasteButton=new JButton(pasteIcon);
pasteButton.setEnabled(false);
deleteButton=new JButton(deleteIcon);
deleteButton.setEnabled(false);
searchButton=new JButton(searchIcon);
timeButton=new JButton(timeIcon);
fontButton=new JButton(fontIcon);
boldButton=new JButton(boldIcon);
italicButton=new JButton(italicIcon);
fgcolorButton=new JButton(fgcolorIcon);
bgcolorButton=new JButton(bgcolorIcon);
helpButton=new JButton(helpIcon);

newButton.setPreferredSize(new Dimension(22,22));
openButton.setPreferredSize(new Dimension(22,22));
saveButton.setPreferredSize(new Dimension(22,22));
saveAsButton.setPreferredSize(new Dimension(22,22));
printButton.setPreferredSize(new Dimension(22,22));
undoButton.setPreferredSize(new Dimension(22,22));
redoButton.setPreferredSize(new Dimension(22,22));
cutButton.setPreferredSize(new Dimension(22,22));
copyButton.setPreferredSize(new Dimension(22,22));
pasteButton.setPreferredSize(new Dimension(22,22));
deleteButton.setPreferredSize(new Dimension(22,22));
searchButton.setPreferredSize(new Dimension(22,22));
timeButton.setPreferredSize(new Dimension(22,22));
fontButton.setPreferredSize(new Dimension(22,22));
boldButton.setPreferredSize(new Dimension(22,22));
italicButton.setPreferredSize(new Dimension(22,22));
fgcolorButton.setPreferredSize(new Dimension(22,22));
bgcolorButton.setPreferredSize(new Dimension(22,22));
helpButton.setPreferredSize(new Dimension(22,22));

//
newButton.addActionListener(this);
openButton.addActionListener(this);
saveButton.addActionListener(this);
saveAsButton.addActionListener(this);
printButton.addActionListener(this);
undoButton.addActionListener(this);
redoButton.addActionListener(this);
cutButton.addActionListener(this);
copyButton.addActionListener(this);
pasteButton.addActionListener(this);
deleteButton.addActionListener(this);
searchButton.addActionListener(this);
timeButton.addActionListener(this);
fontButton.addActionListener(this);
boldButton.addActionListener(this);
italicButton.addActionListener(this);
fgcolorButton.addActionListener(this);
bgcolorButton.addActionListener(this);
helpButton.addActionListener(this);

//
newButton.setToolTipText("");
openButton.setToolTipText("");
saveButton.setToolTipText("");
saveAsButton.setToolTipText("");
printButton.setToolTipText("");
undoButton.setToolTipText("");
redoButton.setToolTipText("");
cutButton.setToolTipText("");
copyButton.setToolTipText("");
pasteButton.setToolTipText("");
deleteButton.setToolTipText("");
searchButton.setToolTipText("");
timeButton.setToolTipText("/");
fontButton.setToolTipText("");
boldButton.setToolTipText("");
italicButton.setToolTipText("");
fgcolorButton.setToolTipText("");
bgcolorButton.setToolTipText("");
helpButton.setToolTipText("");

//、、、、、()
undoButton.setDisabledIcon(new ImageIcon("Icons/undo1.gif"));
redoButton.setDisabledIcon(new ImageIcon("Icons/redo1.gif"));
cutButton.setDisabledIcon(new ImageIcon("Icons/cut1.gif"));
copyButton.setDisabledIcon(new ImageIcon("Icons/copy1.gif"));
pasteButton.setDisabledIcon(new ImageIcon("Icons/paste1.gif"));
deleteButton.setDisabledIcon(new ImageIcon("Icons/delete1.gif"));

//
toolBar.add(newButton);
toolBar.add(openButton);
toolBar.add(saveButton);
toolBar.add(saveAsButton);
toolBar.add(printButton);
toolBar.add(undoButton);
toolBar.add(redoButton);
toolBar.add(cutButton);
toolBar.add(copyButton);
toolBar.add(pasteButton);
toolBar.add(deleteButton);
toolBar.add(searchButton);
toolBar.add(timeButton);
toolBar.add(fontButton);
toolBar.add(boldButton);
toolBar.add(italicButton);
toolBar.add(fgcolorButton);
toolBar.add(bgcolorButton);
toolBar.add(helpButton);

//
container.add(toolBar,BorderLayout.NORTH);

//
statusLabel=new JLabel(" F1");
container.add(statusLabel,BorderLayout.SOUTH);

//
Toolkit tk=Toolkit.getDefaultToolkit();
Image image=tk.createImage("Icons/notepad.gif");
this.setIconImage(image);

//、
this.setLocation(150,150);
this.setSize(650,550);
this.setVisible(true);

checkMenuItemEnabled();
editArea.requestFocus();

}
//:,,,
public void checkMenuItemEnabled(){
String selectText=editArea.getSelectedText();
if(selectText==null)
{
editMenu_Cut.setEnabled(false);
popupMenu_Cut.setEnabled(false);
cutButton.setEnabled(false);
editMenu_Copy.setEnabled(false);
popupMenu_Copy.setEnabled(false);
copyButton.setEnabled(false);
editMenu_Delete.setEnabled(false);
popupMenu_Delete.setEnabled(false);
deleteButton.setEnabled(false);
}
else
{
editMenu_Cut.setEnabled(true);
popupMenu_Cut.setEnabled(true);
cutButton.setEnabled(true);
editMenu_Copy.setEnabled(true);
popupMenu_Copy.setEnabled(true);
copyButton.setEnabled(true);
editMenu_Delete.setEnabled(true);
popupMenu_Delete.setEnabled(true);
deleteButton.setEnabled(true);
}

//
Transferable contents=clipBoard.getContents(this);
if(contents==null)
{
editMenu_Paste.setEnabled(false);
popupMenu_Paste.setEnabled(false);
pasteButton.setEnabled(false);
}
else
{
editMenu_Paste.setEnabled(true);
popupMenu_Paste.setEnabled(true);
pasteButton.setEnabled(true);
}
}//checkMenuItemEnabled()
 

联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!