setJMenuBar(menuBar);
JMenu fileMenu = new JMenu(\);// 文件菜单 menuBar.add(fileMenu);
JMenu editMenu = new JMenu(\);// 编辑菜单 menuBar.add(editMenu);
JMenu helpMenu = new JMenu(\);// 帮助菜单 menuBar.add(helpMenu);
JMenuItem loadItem = new JMenuItem(\);// Load菜单项
loadItem.addActionListener(new ActionListener() {// 添加点击事件处理
public void actionPerformed(ActionEvent e) { }
loadFile();
});
fileMenu.add(loadItem);
JMenuItem saveItem = new JMenuItem(\);// Save菜单项
saveItem.addActionListener(new ActionListener() {// 添加点击事件处理
public void actionPerformed(ActionEvent e) { }
saveFile();
});
fileMenu.add(saveItem);
JMenuItem exitItem = new JMenuItem(\);// Exit菜单项
exitItem.addActionListener(new ActionListener() {// 添加点击事件处理
public void actionPerformed(ActionEvent e) { }
System.exit(0);
});
fileMenu.add(exitItem);
JMenuItem cutItem = new JMenuItem(\);// Cut菜单项
cutItem.addActionListener(new ActionListener() {// 添加点击事件处理
public void actionPerformed(ActionEvent e) { }
cut();
});
editMenu.add(cutItem);
JMenuItem copyItem = new JMenuItem(\);// Copy菜单项
copyItem.addActionListener(new ActionListener() {// 添加点击事件处理
public void actionPerformed(ActionEvent e) { }
copy();
});
editMenu.add(copyItem);
JMenuItem pasteItem = new JMenuItem(\);// Paste菜单项
pasteItem.addActionListener(new ActionListener() {//添加点击事件处理
34
public void actionPerformed(ActionEvent e) { }
paste();
});
editMenu.add(pasteItem); topPanel = new JPanel();
topPanel.setLayout(new BorderLayout());// 设置BorderLayout布局 editorPanel = new JPanel();
editorPanel.setLayout(new BorderLayout());
editorPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, bottonPanel = new JPanel();
bottonPanel.setBorder(BorderFactory.createEtchedBorder()); GridLayout grid = new GridLayout(); grid.setColumns(1);// 设置为1列
grid.setHgap(10);// 设置内部组件垂直间隔 grid.setRows(5);// 设置为5行
grid.setVgap(3);// 设置内部组件水平间隔
bottonPanel.setLayout(grid);// 设置为网格布局 scroller = new JScrollPane(); editor = new JTextArea();
editor.setColumns(40);// 文本区设置为40列 loadButton = new JButton(\);
loadButton.addActionListener(new ActionListener(){//添加点击事件处理
public void actionPerformed(ActionEvent e){ }
loadFile();
5));// 设置边框
});
saveButton = new JButton(\);
saveButton.addActionListener(new ActionListener(){//添加点击事件处理
public void actionPerformed(ActionEvent e) { }
saveFile();
});
cutButton = new JButton(\);
cutButton.addActionListener(new ActionListener(){//添加点击事件处理
public void actionPerformed(ActionEvent e) { }
cut();
});
copyButton = new JButton(\);
copyButton.addActionListener(new ActionListener(){//添加点击事件处理
public void actionPerformed(ActionEvent e) {
35
}
copy();
});
pasteButton = new JButton(\);
pasteButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) { }
paste();
});
final JPopupMenu popup = new JPopupMenu();// 创建弹出菜单 JMenuItem jcutItem = new JMenuItem(\);// 创建Cut菜单项 popup.add(jcutItem);
}
editor.addMouseListener(new MouseAdapter() {// 添加鼠标事件处理
public void mouseReleased(MouseEvent event) { }
if (event.isPopupTrigger())// 判断是否按下鼠标右键
popup.show(event.getComponent(), event.getX(),
event.getY());// 显示弹出式菜单
});
// 把topPanel添加到内容面板的中区
getContentPane().add(topPanel, BorderLayout.CENTER); topPanel.add(bottonPanel, BorderLayout.WEST); bottonPanel.add(loadButton); bottonPanel.add(saveButton); bottonPanel.add(cutButton); bottonPanel.add(copyButton); bottonPanel.add(pasteButton);
topPanel.add(editorPanel, BorderLayout.CENTER); editorPanel.add(scroller, BorderLayout.CENTER);
scroller.getViewport().add(editor);// 把editor添加到滚动面板 setTitle(\);// 设置窗口标题 pack();// 调整此窗口的大小以适合其子组件的首选大小和布局
private void loadFile() {// 加载文件内容到文本区
JFileChooser fc = new JFileChooser(); int returnVal = fc.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile(); try { }
editor.read(new FileReader(file), null); } catch (IOException exp) {
36
}
}
}
private void saveFile() {// 把文本区的内容保存到文件 }
private void copy() {// 把文本区的内容复制到系统剪贴板 }
private void paste() {// 把系统剪贴板的内容粘贴到文本区 }
private void cut() {// 把文本区的内容剪切到系统剪贴板 }
editor.cut();
editor.requestFocus(); editor.paste();
editor.requestFocus(); editor.copy();
editor.requestFocus();
JFileChooser fc = new JFileChooser(); int returnVal = fc.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) { }
File file = fc.getSelectedFile(); try { }
editor.write(new FileWriter(file)); } catch (IOException exp) {
(4)在Package Explorer窗口中工程Experiment7下“src”下的“Editer”包上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Name中输入“SimpleEditer”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为SimpleEditer的主类。
(5)在SimpleEditer类中输入代码如下:
package Editer;
import javax.swing.JFrame; public class SimpleEditer{
public static void main(String[] args){ EditerFrame frame = new EditerFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
(6)点击工具栏运行按钮,运行结果如图E7-1所示。
37
图E7-1 运行结果
(二)实验练习题
1、按下面要求修改基本指导中的文本编辑器程序,要求:
(1)窗口标题改为“简单记事本”。
(2)在窗口中添加一个具有以下菜单的菜单栏: a.“文件”菜单,包含“打开”、“保存”、“退出”的菜单项,菜单间加分隔线。 b.“编辑”菜单,包含“复制”、“剪切”、“粘贴”的菜单项,菜单间加分隔线。 c.“格式”菜单,包含“字体设置”和“格式设置”的二级子菜单;“字体设置”包含“字体大小”和“字体颜色”菜单项,“格式设置”包含 “自动换行”、“取消自动换行”、“断行不断字”、“取消断行不断字”菜单项,添加相应的事件处理方法。(提示:JTextArea类中,使用setLineWrap(true)方法设置自动换行,使用setWrapStyleword(true)方法设置断行不断字)
d.“帮助”菜单,包含“关于”菜单项,添加事件处理方法,使具有弹出“关于对话框”(显示软件版本和作者信息)的功能。
(3)在窗口中添加工具栏,包含“打开”、“保存”、“复制”、“剪切”、“粘贴”图片按钮的工具栏,添加事件处理方法,单击相应的按钮能实现相应的功能。
(4)在窗口中添加弹出式菜单,包含“打开”、“保存”、“复制”、“剪切”、“粘贴”的菜单项,之间添加分隔线,添并加事件处理方法,选择相应的菜单项能实现相应的功能。
(5)当用户关闭窗口或退出程序时,弹出提醒用户保存文件的对话框。
2、编写程序,在窗口中画出方程y=ax2+bx+c,其中a、b、c的值可以通过三个滑动杆(JSlider)对象改变。
38
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java实验指导书(8)在线全文阅读。
相关推荐: