第十三周课程总结
Posted cxnkkk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十三周课程总结相关的知识,希望对你有一定的参考价值。
1.菜单组件
JMenu与JMenuBar
若在Java中实现菜单,则可以使用JMenu组件,不过,如果要使用JMenu则首先要了解JMenuBar组件。JMenuBar组件的功能是用来摆放JMenu组件,当建立完许多的JMenu组件之后,需要通过JMenuBar组件来将JMenu组件加入到窗口中
JMenu的常用方法
JMenu的常用方法
JMenuItem
JMenuItem:为菜单加入菜单项
JMenuItem的常用方法
2.JFileChooser
JFileChooser的常用方法
记事本
代码
package demo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
public class TextPad implements ActionListener{
JFrame frame;
JMenuBar bar;
JMenu fileMenu,editMenu,formatMenu,lookMenu;
JMenuItem newItem,openItem,saveItem,saveAnotherItem,closeItem;
ImageIcon newIcon,openIcon,saveIcon,saveAnotherIcon,closeIcon;
JMenuItem revocationItem,cutItem,copyItem,stickItem,deleteItem,allItem,timeDateItem;
JMenuItem lineItem,typeFaceItem,zoomItem,statusItem;
JScrollPane scroll;
JTextArea area;
JFileChooser chooser; //文件选择框
File file;
public TextPad() {
frame = new JFrame("记事本");
bar=new JMenuBar();
fileMenu=new JMenu("文件");
editMenu=new JMenu("编辑");
formatMenu=new JMenu("格式");
lookMenu=new JMenu("查看");
newIcon=new ImageIcon("e:"+File.separator+"Test"+File.separator+"小图标"+File.separator+"newIcon.png");
openIcon=new ImageIcon("e:"+File.separator+"Test"+File.separator+"小图标"+File.separator+"openIcon.png");
saveIcon=new ImageIcon("e:"+File.separator+"Test"+File.separator+"小图标"+File.separator+"saveIcon.png");
saveAnotherIcon=new ImageIcon("e:"+File.separator+"Test"+File.separator+"小图标"+File.separator+"saveAnotherIcon.png");
closeIcon=new ImageIcon("e:"+File.separator+"Test"+File.separator+"小图标"+File.separator+"closeIcon.png");
area=new JTextArea();
scroll=new JScrollPane(area);
newItem=new JMenuItem("新建(N)",newIcon);
openItem=new JMenuItem("打开(O)",openIcon);
saveItem=new JMenuItem("保存(S)",saveIcon);
saveAnotherItem=new JMenuItem("另存为(D)",saveAnotherIcon);
closeItem=new JMenuItem("关闭(X)",closeIcon);
revocationItem=new JMenuItem("撤销(Z)");
cutItem=new JMenuItem("剪切(T)");
copyItem=new JMenuItem("复制( C)");
stickItem=new JMenuItem("粘贴(V)");
deleteItem=new JMenuItem("删除(P)");
allItem=new JMenuItem("全选(A)");
timeDateItem=new JMenuItem("时间日期(Q)");
lineItem=new JMenuItem("自动换行(W)");
typeFaceItem=new JMenuItem("字体(F)");
zoomItem=new JMenuItem("缩放(R)");
statusItem=new JMenuItem("状态栏(S)");
//加上监视器
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
saveAnotherItem.addActionListener(this);
revocationItem.addActionListener(this);
cutItem.addActionListener(this);
copyItem.addActionListener(this);
stickItem.addActionListener(this);
deleteItem.addActionListener(this);
allItem.addActionListener(this);
timeDateItem.addActionListener(this);
lineItem.addActionListener(this);
typeFaceItem.addActionListener(this);
zoomItem.addActionListener(this);
statusItem.addActionListener(this);
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(saveAnotherItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
editMenu.add(revocationItem);
editMenu.add(cutItem);
editMenu.add(copyItem);
editMenu.add(stickItem);
editMenu.add(deleteItem);
editMenu.add(allItem);
editMenu.add(timeDateItem);
formatMenu.add(lineItem);
formatMenu.add(typeFaceItem);
lookMenu.add(zoomItem);
lookMenu.add(statusItem);
newItem.setMnemonic(KeyEvent.VK_N);
openItem.setMnemonic(KeyEvent.VK_O);
saveItem.setMnemonic(KeyEvent.VK_S);
saveAnotherItem.setMnemonic(KeyEvent.VK_D);
closeItem.setMnemonic(KeyEvent.VK_X);
revocationItem.setMnemonic(KeyEvent.VK_Z);
cutItem.setMnemonic(KeyEvent.VK_T);
copyItem.setMnemonic(KeyEvent.VK_C);
stickItem.setMnemonic(KeyEvent.VK_V);
deleteItem.setMnemonic(KeyEvent.VK_P);
allItem.setMnemonic(KeyEvent.VK_A);
timeDateItem.setMnemonic(KeyEvent.VK_Q);
//快捷键
newItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));
saveAnotherItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));
revocationItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK));
cutItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_T,InputEvent.CTRL_DOWN_MASK));
copyItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
stickItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
deleteItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_P,InputEvent.CTRL_DOWN_MASK));
allItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
timeDateItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_Q,InputEvent.CTRL_DOWN_MASK));
bar.add(fileMenu);
bar.add(editMenu);
bar.add(formatMenu);
bar.add(lookMenu);
frame.setJMenuBar(bar);
frame.add(scroll);
frame.setSize(600,400);
frame.setLocation(200, 100);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent event) {
Object obj=event.getSource();
if(obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem) obj;
if(item==newItem) {
new TextPad();
}else if(item==openItem) {
chooser=new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
try {
FileInputStream fis=new FileInputStream(file);
byte[] b = new byte[fis.available()];
fis.read(b);
area.append(new String(b));
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}else if(item==saveItem) {
chooser=new JFileChooser();
chooser.showSaveDialog(null);
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
byte[] b=area.getText().getBytes();
fos.write(b);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
}
}else if(item==saveAnotherItem) {
chooser=new JFileChooser();
chooser.showSaveDialog(null);
file=chooser.getSelectedFile();
try {
if(!file.exists()) {
file.createNewFile();
}
FileOutputStream fos=new FileOutputStream(file);
byte[] b=area.getText().getBytes();
fos.write(b);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}else if(item==closeItem) {
System.exit(1);
}
}
}
}
package demo;
public class Test {
public static void main(String[] args) {
new TextPad();
}
}
运行截图
以上是关于第十三周课程总结的主要内容,如果未能解决你的问题,请参考以下文章