📄 mynotepadui.java
字号:
package main;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import server.*;
import server.Help;
import client.*;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JToolBar;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingConstants;
import javax.swing.JPopupMenu;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.UIManager;
public class MyNotePadUI extends JFrame implements ActionListener{
private JMenuItem newItem;
private JMenuItem open;
private JMenuItem save;
private JMenuItem saveAs;
private JMenuItem exit;
private JMenu editMenu;
private JMenuItem cut;
private JMenuItem copy;
private JMenuItem paste;
private JMenuItem changeLine;
private JMenuItem cancleChangeLine;
private JMenuItem top;
private JMenuItem cancleOnTop;
private JMenuItem about;
private JMenuItem chatServer;
private JMenuItem chatClient;
private JMenuItem fontItem;
private JMenuItem redItem = new JMenuItem("Red");
private JMenuItem blackItem = new JMenuItem("Black");
private JMenuItem yellowItem = new JMenuItem("Yellow");
private JMenuItem greenItem = new JMenuItem("Green");
private JMenuItem blueItem = new JMenuItem("Blue");
private JMenu background;
private JMenuItem redBG = new JMenuItem("Red");;
private JMenuItem whiteBG = new JMenuItem("White");
private JMenuItem greenBG = new JMenuItem("Green");
private JMenuItem blueBG = new JMenuItem("Blue");
private JMenuItem blackBG = new JMenuItem("Black");
private JMenuItem yellowBG = new JMenuItem("Yellow");
private JMenuItem resetItem;
private JMenuItem helpItem;
private JTextArea textArea;
private JPopupMenu popUpMenu;
private JLabel stateBar;
private JFileChooser fileChooser;
private JButton newButton;
private JButton openButton;
private JButton saveButton;
private JButton chatServerButton;
private JButton chatClientButton;
public MyNotePadUI(){
super("New File");
setUpUIComponent();
setUpEventListener();
setVisible(true);
}
private void setUpUIComponent(){
try { // 使用系统的界面风格
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
//设置窗口大小
Dimension faceSize = new Dimension(800, 600);
this.setSize(faceSize);
//设置窗口位置
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation( (int) (screenSize.width - faceSize.getWidth())/ 2,
(int) (screenSize.height - faceSize.getHeight()) / 2);
Container contentPane = getContentPane();
setIconImage(Toolkit.getDefaultToolkit().createImage("images/BAT6.GIF"));
//菜单栏
JMenuBar menuBar = new JMenuBar();
JToolBar toolBar = new JToolBar();
newButton = new JButton("New");
ImageIcon iconNew= new ImageIcon("images/ICON_UP_PAPER.GIF");
newButton.setIcon(iconNew);
openButton = new JButton("Open");
ImageIcon iconOpen= new ImageIcon("images/ICON_UP_ICON.GIF");
openButton.setIcon(iconOpen);
saveButton = new JButton("Save");
ImageIcon iconSave = new ImageIcon("images/ICON_UP_SOFTWARE.GIF");
saveButton.setIcon(iconSave);
chatServerButton = new JButton("Server");
ImageIcon iconServer= new ImageIcon("images/ICON_UP_EXPLORER.GIF");
chatServerButton.setIcon(iconServer);
chatClientButton = new JButton("Client");
ImageIcon iconClient= new ImageIcon("images/ICON_UP_Link.GIF");
chatClientButton.setIcon(iconClient);
toolBar.add(newButton);
toolBar.addSeparator();
toolBar.add(openButton);
toolBar.addSeparator();
toolBar.add(saveButton);
toolBar.addSeparator();
toolBar.add(chatServerButton);
toolBar.addSeparator();
toolBar.add(chatClientButton);
contentPane.add(toolBar,BorderLayout.NORTH);
//设置文件菜单
JMenu fileMenu = new JMenu("File");
newItem = new JMenuItem("New");
open = new JMenuItem("Open");
save = new JMenuItem("Save");
saveAs = new JMenuItem("Save As");
exit = new JMenuItem("Exit");
fileMenu.add(newItem);
fileMenu.addSeparator();;
fileMenu.add(open);
fileMenu.addSeparator();
fileMenu.add(save);
fileMenu.add(saveAs);
fileMenu.addSeparator();
fileMenu.add(exit);
//设置编辑菜单
editMenu = new JMenu("Edit");
copy = new JMenuItem("Copy");
cut = new JMenuItem("Cut");
paste = new JMenuItem("Paste");
changeLine = new JMenuItem("Auto change line");
cancleChangeLine = new JMenuItem("Cancle");
top = new JMenuItem("Always on top");
cancleOnTop = new JMenuItem("Cancle");
editMenu.add(copy);
editMenu.addSeparator();
editMenu.add(cut);
editMenu.addSeparator();
editMenu.add(paste);
editMenu.addSeparator();
editMenu.add(top);
editMenu.add(cancleOnTop);
editMenu.addSeparator();
editMenu.add(changeLine);
editMenu.add(cancleChangeLine);
//设置关于菜单
JMenu aboutMenu = new JMenu("About");
about = new JMenuItem("About MyNotePad");
aboutMenu.add(about);
//设置聊天菜单
JMenu chatMenu = new JMenu("Chat");
chatServer = new JMenuItem("ChatServer");
chatClient = new JMenuItem("ChatClient");
chatMenu.add(chatServer);
chatMenu.addSeparator();
chatMenu.add(chatClient);
//设置格式菜单
background = new JMenu("Background");
JMenu formatMenu = new JMenu("Format");
fontItem = new JMenuItem("Font");
resetItem = new JMenuItem("Reset");
JMenu colorMenu = new JMenu("Color");
formatMenu.add(fontItem);
formatMenu.addSeparator();
formatMenu.add(colorMenu);
formatMenu.addSeparator();
formatMenu.add(background);
formatMenu.addSeparator();
formatMenu.add(resetItem);
colorMenu.add(redItem);
colorMenu.addSeparator();
colorMenu.add(blackItem);
colorMenu.addSeparator();
colorMenu.add(yellowItem);
colorMenu.addSeparator();
colorMenu.add(greenItem);
colorMenu.addSeparator();
colorMenu.add(blueItem);
background.add(redBG);
background.addSeparator();
background.add(blueBG);
background.addSeparator();
background.add(whiteBG);
background.addSeparator();
background.add(greenBG);
background.addSeparator();
background.add(blackBG);
background.addSeparator();
background.add(yellowBG);
//设置帮助菜单
JMenu helpMenu = new JMenu("Help");
helpItem = new JMenuItem("Help");
helpMenu.add(helpItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(formatMenu);
menuBar.add(chatMenu);
menuBar.add(helpMenu);
menuBar.add(aboutMenu);
//设置菜单栏
setJMenuBar(menuBar);
//文字编辑区域
textArea = new JTextArea();
textArea.setFont(Font.getFont("宋体"));
textArea.setLineWrap(true);
JScrollPane panel = new JScrollPane(textArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
contentPane.add(panel,BorderLayout.CENTER);
//状态栏
stateBar = new JLabel("Not changed");
stateBar.setHorizontalAlignment(SwingConstants.LEFT);
stateBar.setBorder(BorderFactory.createEtchedBorder());
contentPane.add(stateBar,BorderLayout.SOUTH);
popUpMenu = editMenu.getPopupMenu();
fileChooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"Txt文档", "txt");
fileChooser.setFileFilter(filter);
}
private void setUpEventListener(){
//click the close button to close the window
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
closeFile();
}
});
newItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
if(!isCurrentFileSaved()){
int option = JOptionPane.showConfirmDialog(null,"The file has not been saved,do you save it?",
"Save the file?",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null);
switch(option){
case JOptionPane.YES_OPTION:
saveFile();break;
default:
break;
}
}
textArea.setText("");
setTitle("New File");
stateBar.setText("Not changed");
}
});
newButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
if(!isCurrentFileSaved()){
int option = JOptionPane.showConfirmDialog(null,"The file has not been saved,do you save it?",
"Save the file?",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null);
switch(option){
case JOptionPane.YES_OPTION:
saveFile();break;
default:
break;
}
}
textArea.setText("");
setTitle("New File");
stateBar.setText("Not changed");
}
});
//MenuItem-Open
open.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
openFile();
}
});
openButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
openFile();
}
});
//MenuItem-Save
save.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e) {
saveFile();
}
});
saveButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e) {
saveFile();
}
});
//MenuItem-Save As
saveAs.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
saveFileAs();
}
});
//MenuItem-Exit
exit.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
closeFile();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -