package jxufe.java.bookEditor.viewClass;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
/**
* @author 彭文忠
* @简介 编写书的主页面
* @version 3月21日
*/
@SuppressWarnings("serial")
public class EditBookIndex extends JFrame {
///////////////////////////////I.变量定义区域/////////////////////////////////////////////////////
private JRadioButtonMenuItem bookParagraphItems[],bookCommentItems[];
//编辑好段之后在这个showpageText区域按段原有格式进行显示
private JTextArea showPageText;
//注意按钮组 ButtonGroup 对象创建一组按钮意味着“开启”其中一个按钮时,将关闭组中的其他所有按钮。
// private ButtonGroup bookParagraphGroup,bookCommentGroup;
//可以滚动的JPanel
private JScrollPane scroll;
// 存放文本编辑区中选中的文本内容,在显示的时候每一段都是一个被选中的对象。因为每一段的样式都不一定相同
private String selectText = "";
//用来统计文字的行数
private int rowNumber = 0;
//声明用来选择打开和保存文件用的对象
JFileChooser fc;
static private final String newline = "\n";
private File file; // 文件对话框变量
String fileName;
//////////////////////////////变量定义结束区域//////////////////////////////////////////////////////
/////////////////////////////II构造函数实现部分////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
// 构造函数(继承自JFrame容器)
public EditBookIndex() {
//调用父类JFrame的带参数(框架名)构造函数
super("课本编辑器");
//container是用来放置组件的容器,取得当前容器。里面可以放置很多JPanel
Container container = this.getContentPane();
//设置container的布局方式为五区的布局形式
container.setLayout(new BorderLayout());
///////////////////////////////////1.菜单设置区域////////////////////////////////////////////////////////////
//实例化菜单栏对象bar并设置为当前面板的菜单
JMenuBar bar = new JMenuBar();
bar.setPreferredSize(new Dimension(600,30));
setJMenuBar(bar);
////////1.1文件菜单///////////////////////////////////////
JMenu fileMenu = new JMenu("文件(F)");
//按钮F出发该菜单
fileMenu.setMnemonic('F');
// 建立文件菜单fileMenu的子菜单关于保存当前文档(savePage)
fc = new JFileChooser();
JMenuItem openPage = new JMenuItem("Open a File(O)...");
openPage.setMnemonic('O');
fileMenu.add(openPage); //添加进去
openPage.addActionListener( //对子菜单实现监听
new ActionListener() {
public void actionPerformed(ActionEvent event) {
int returnVal = fc.showOpenDialog(EditBookIndex.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
// 获得该文件
file = fc.getSelectedFile();
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
StringBuffer ss = new StringBuffer(line);
while (line != null) {
line = br.readLine();
ss.append("\r\n" + line);
}
String rr = new String(ss);
StringBuffer rs = new StringBuffer(rr.length() - 4);
for (int i = 0; i < rr.length() - 4; i++)
rs.append(rr.charAt(i));
showPageText.setText(rs.toString());//将打开的文件写入到文本框programe中
} catch (IOException ee) {
}
System.out.print("Opening: " + file.getName() + "." + newline);
} else {
System.out.print("Open command cancelled by user." + newline);
}
// showPageText.setCaretPosition(showPageText.getDocument().getLength());
}
} // end anonymous inner class
); // end call to addActionListener
// 建立文件菜单fileMenu的子菜单保存当前文档(savePage)
JMenuItem savePage = new JMenuItem("Save a File(S)......");
savePage.setMnemonic('S');
fileMenu.add(savePage); //添加进去
savePage.addActionListener( //对子菜单实现监听
new ActionListener() {
public void actionPerformed(ActionEvent event) {
int returnVal = fc.showSaveDialog(EditBookIndex.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
// 获得你输入要保存的文件
file = fc.getSelectedFile();
// 获得文件名
fileName = fc.getName(file);
// 也可以使用fileName=f.getName();
try {
FileWriter fw = new FileWriter(file);
fw.write(showPageText.getText().toString());
fw.close();
} catch (IOException ef) {
}
} else {
System.out.print("Save command cancelled by user." + newline);
}
// showPageText.setCaretPosition(showPageText.getDocument().getLength());
}
}
);
// set up Exit menu item退出菜单
JMenuItem exitItem = new JMenuItem("Exit");
exitItem.setMnemonic('x');
fileMenu.add(exitItem);
exitItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0); //退出系统
}
});
bar.add(fileMenu);
///////////////////////文件菜单结束////////////////////////////
////////////////////////////1.2.“新建(N)”菜单实现/////////////////////////////////
JMenu addMenu = new JMenu("新建(N)");
addMenu.setMnemonic('N');
//新增课本子菜单
JMenuItem addBookItem = new JMenuItem("新增课本(B)");
addBookItem.setMnemonic('B');
addMenu.add(addBookItem);
addBookItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
AddBook addBook = new AddBook();
JOptionPane.showMessageDialog(null, addBook);
}
});
//新增页面子菜单
JMenuItem addPageItem = new JMenuItem("新增页面(P)");
addPageItem.setMnemonic('P');
addMenu.add(addPageItem);
addPageItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
AddPage addPage = new AddPage();
//用JOptionPane.showMessageDialog的形式来显示这个JPanel
JOptionPane.showMessageDialog(null, addPage);
}
});
//这个改成:到时候用来修改编辑错误的指定的某一段,暂时略过
// //新增段子菜单,该子菜单下面还有子菜单(文本段和图片段)
// String bookParagraph [] = { "文本段", "图片段",};
// //二级主菜单
// JMenu bookParagraphMenu = new JMenu("新增段(D)");
// bookParagraphMenu.setMnemonic('D');
// //建立段的子菜单即文本段和图片段两种
// bookParagraphItems = new JRadioButtonMenuItem[bookParagraph.length];
//
// //设置按钮组,将单选文本段和图片段这两个单选按钮放入按钮组
// bookParagraphGroup = new ButtonGroup();
// //申明对新建文本段和图片段的监听器
// ItemHandler itemHandler = new ItemHandler();
//
// // 将新建段下面的文本段和图片段对应到单选按钮上去
// for (int paragraph = 0; paragraph < bookParagraph.length; paragraph++) {
// bookParagraphItems[paragraph] = new JRadioButtonMenuItem(bookParagraph[paragraph]);
// bookParagraphMenu.add(bookParagraphItems[paragraph]); //在颜色菜单下面增加几个子菜单
// bookParagraphGroup.add(bookParagraphItems[paragraph]);
// bookParagraphItems[paragraph].addActionListener(itemHandler); //对每个子菜单按钮设置监听
// }
// //默认情况下选择的是文本段
// bookParagraphItems[0].setSelected(true);
// addMenu.add(bookParagraphMenu); //将颜色菜单放在格式菜单下面
// addMenu.addSeparator(); //在指定的位置插入分隔符
//
// //新增注释子菜单,该子菜单下面还有子菜单(文本注释、MP3注释、媒体注释)
// String bookComment [] = { "文本注释", "图片注释","媒体注释"};
// //二级主菜单
// JMenu bookCommentMenu = new JMenu("新增注释(M)");
// bookCommentMenu.setMnemonic('M');
// //建立段的子菜单即文本注释、Mp3注释、媒体注释
// bookCommentItems = new JRadioButtonMenuItem[bookComment.length];
//
// //设置按钮组,将文本注释、Mp3注释、媒体注释等单选按钮
没有合适的资源?快使用搜索试试~ 我知道了~
Java写的界面话课本录入器,java界面话布局
共67个文件
class:47个
java:18个
project:1个
需积分: 10 5 下载量 70 浏览量
2011-04-09
15:14:20
上传
评论
收藏 81KB RAR 举报
温馨提示
这个是我写的一个半成品,后因工作室修改方案而置弃没用了。但是写的时候也花了很多心血。所以打算上传上来,不管有没有人下载吧。简介一下:这是一个课本录入器,主题有两大类:1.实体类,对象就是一本书,目地就是将一本书存储到数据库中,最后按页的形式显示到显示界面上。输入是以段的为对象输入的,每个段字体颜色背景等都可能不同,所以编辑器要实现这些差异化且设置监控器,当选择时需要将选择的属性保存到实体类中。2.试图类,用户操作的就是视图类,用户的所有操作(如对段背景、字体颜色、字体大小、字体类型)都需要保存到对应的实体类中并保存到数据库。 PS:由于中途终止了所以数据库存储和界面显示都还木做好,值做好了用户录入界面和所有监听器。仅供研究java界面话布局和监听器等参考。以后有时间可能完善
资源推荐
资源详情
资源评论
收起资源包目录
BookEditor04.rar (67个子文件)
BookEditor04
.project 386B
bin
jxufe
java
bookEditor
entityClass
BookTextComment.class 421B
BookComment.class 586B
Book.class 3KB
Page.class 1KB
BookTextParagraph.class 4KB
BookComment$BookCommentType.class 758B
BookMediaComment.class 370B
BookImageComment.class 409B
BookImageParagraph.class 423B
viewClass
AddParagraph$10.class 2KB
AddParagraph$6.class 2KB
AddParagraph$3.class 4KB
EditBookIndex$2.class 2KB
AddComment.class 536B
AddImageParagraph.class 540B
ShowPageJPanel.class 7KB
openAndSaveFile.class 4KB
ShowPage$ShowPageJPanel.class 2KB
AddBook.class 5KB
EditBookIndex$ItemHandler.class 2KB
AddBook$2.class 4KB
AddParagraph$8.class 2KB
AddPage.class 2KB
TextUtil.class 3KB
EditBookIndex$5.class 1014B
openAndSaveFile$1.class 807B
AddParagraph$7.class 2KB
AddParagraph.class 8KB
AddParagraph$9.class 1KB
EditBookIndex$10.class 2KB
AddParagraph$1.class 962B
EditBookIndex$9.class 2KB
EditBookIndex$1.class 3KB
AddParagraph$2.class 2KB
EditBookIndex.class 6KB
EditBookIndex$6.class 2KB
EditBookIndex$3.class 830B
AddBook$1.class 1KB
AddParagraph$4.class 2KB
EditBookIndex$CommentHandler.class 1KB
EditBookIndex$4.class 1014B
ShowPage.class 849B
EditBookIndex$8.class 1KB
EditBookIndex$7.class 1KB
AddPage$1.class 2KB
AddPage$2.class 800B
AddParagraph$5.class 2KB
src
jxufe
java
bookEditor
entityClass
Book.java 3KB
BookImageComment.java 254B
BookTextComment.java 248B
BookImageParagraph.java 316B
BookMediaComment.java 305B
BookComment.java 997B
BookTextParagraph.java 4KB
Page.java 1KB
viewClass
openAndSaveFile.java 5KB
ShowPageJPanel.java 10KB
AddParagraph.java 17KB
AddBook.java 6KB
AddComment.java 416B
ShowPage.java 519B
AddImageParagraph.java 425B
EditBookIndex.java 17KB
TextUtil.java 8KB
AddPage.java 3KB
.classpath 232B
共 67 条
- 1
资源评论
awen_PC
- 粉丝: 27
- 资源: 42
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (全新整理)ESG榜单冲击数据(2000-2022年)
- 碳排放权交易明细数据(2024年5月更新).dta
- (2024年最新更新)!!!碳排放权交易明细数据
- 2017年A股上市公司人均薪酬指标相关资料
- JavaScript 要点总结
- 2004年至2024年间东风股份股东户数变化
- 人工智能-检索增强生成-利用开源大模型,通过RAG(检索增强生成)技术,实现基于企业内部知识图谱的,可内网运行的大模型智能客服
- 大学生职业规划.pptx
- 2023-04-06-项目笔记 - 第三百二十二阶段 - 4.4.2.320全局变量的作用域-320 -2025.11.19
- 《Linux操作系统实用教程(第2版)》- 配套软件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功