我是靠谱客的博主 仁爱钻石,最近开发中收集的这篇文章主要介绍java实现极简单的 TXT小说阅读器(第三版),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第三版在第二版的基础上增加了

保存 以及另存为的选项。

并且完善了简单的菜单栏。

SaveAndSaveAs类:

public class SaveAndSaveAs {
public SaveAndSaveAs(JTextArea textArea,String filePath){
BufferedWriter bw = null;
try {
OutputStream os = new FileOutputStream(filePath);
bw = new BufferedWriter(new OutputStreamWriter(os));
for (String value : textArea.getText().split("n")) {
bw.write(value);
bw.newLine();//换行
}
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}


WordStyleSet类:

public class WordStyleSet {
public static void StyleSet(JTextArea jtextarea,String wordName,int wordStyle,int wordSize){
Font font = new Font(wordName,wordStyle,wordSize);
jtextarea.setFont(font);
}
}


Display_txt类:

public class Display_txt extends JFrame {
JFrame jframe = new JFrame();
JTextArea content,wordSizeSetArea,wordStyleSetArea,wordNameSetArea;
JMenuBar menubar = new JMenuBar();
JMenu menu_file = new JMenu("文件");
JMenu menu_about = new JMenu("关于");
JMenuItem menuItem_open = new JMenuItem("打开");
JMenuItem menuItem_save = new JMenuItem("保存");
JMenuItem menuItem_saveAs = new JMenuItem("另存为");
JMenuItem menuItem_exit = new JMenuItem("退出");
JMenuItem menuItem_about = new JMenuItem("软件说明");
boolean flag = true;
String str_filePath = null;
public Display_txt(){
//文字输入框(文字显示窗口)
content = new JTextArea(10,50);
content.setAutoscrolls(true);
JScrollPane contentScroll = new JScrollPane(content);
content.setBorder(BorderFactory.createBevelBorder(1));
JPanel upper = new JPanel(new BorderLayout());
upper.add(contentScroll);
//字体大小设置窗口
wordSizeSetArea = new JTextArea(1,3);
wordSizeSetArea.setBorder(BorderFactory.createBevelBorder(1));
wordSizeSetArea.setText("12");
//字体样式设置窗口(加粗等)
wordStyleSetArea = new JTextArea(1,3);
wordStyleSetArea.setBorder(BorderFactory.createBevelBorder(1));
wordStyleSetArea.setText("0");
//字体名字设置窗口(宋体等)
wordNameSetArea = new JTextArea(1,3);
wordNameSetArea.setBorder(BorderFactory.createBevelBorder(1));
wordNameSetArea.setText("宋体");
//(菜单栏)文件——打开
menuItem_open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
JFileChooser jfc = new JFileChooser();
if(jfc.showOpenDialog(jframe)==JFileChooser.APPROVE_OPTION ){
str_filePath = jfc.getSelectedFile().getAbsolutePath();
BufferedReader bufferedReader = new BufferedReader(new FileReader(str_filePath));
String str_line;
while((str_line=bufferedReader.readLine())!=null){
if(flag){
content.setText(str_line);
flag = false;
}
else{
content.setText(content.getText()+"n"+str_line);
}
}
bufferedReader.close();
}
}catch(FileNotFoundException e1){
e1.printStackTrace();
}catch(IOException e2){
e2.printStackTrace();
}
}
});
//按钮
JButton wordSizeSet = new JButton("设置字体大小");
wordSizeSet.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
WordStyleSet.StyleSet(content,wordNameSetArea.getText(),Integer.parseInt(wordStyleSetArea.getText()),Integer.parseInt(wordSizeSetArea.getText()));
}catch(Exception e0){
e0.printStackTrace();
}
}
});
//按钮
JButton wordStyleSet = new JButton("设置字体样式");
wordStyleSet.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
WordStyleSet.StyleSet(content,wordNameSetArea.getText(),Integer.parseInt(wordStyleSetArea.getText()),Integer.parseInt(wordSizeSetArea.getText()));
}catch(Exception e0){
e0.printStackTrace();
}
}
});
//按钮
JButton wordNameSet = new JButton("设置字体名字");
wordNameSet.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
WordStyleSet.StyleSet(content,wordNameSetArea.getText(),Integer.parseInt(wordStyleSetArea.getText()),Integer.parseInt(wordSizeSetArea.getText()));
}catch(Exception e0){
e0.printStackTrace();
}
}
});
//(菜单栏)文件——另存为
menuItem_saveAs.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser jfc = new JFileChooser();
if(jfc.showSaveDialog(jframe)==JFileChooser.APPROVE_OPTION )
new SaveAndSaveAs(content,jfc.getSelectedFile().getPath());
}
});
//(菜单栏)文件——保存
menuItem_save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new SaveAndSaveAs(content,str_filePath);
}
});
//(菜单栏)文件——退出
menuItem_exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
//(菜单栏)关于——软件说明
menuItem_about.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(jframe, "版本1.0
作者:snnile","软件说明", JOptionPane.INFORMATION_MESSAGE);
}
});
menu_file.add(menuItem_open);
menu_file.add(menuItem_save);
menu_file.add(menuItem_saveAs);
menu_file.add(menuItem_exit);
menubar.add(menu_file);
menu_about.add(menuItem_about);
menubar.add(menu_about);
JPanel buttonp = new JPanel();
buttonp.add(wordSizeSet);
buttonp.add(wordSizeSetArea);
buttonp.add(wordStyleSet);
buttonp.add(wordStyleSetArea);
buttonp.add(wordNameSet);
buttonp.add(wordNameSetArea);
JPanel all = new JPanel(new GridLayout(1,1));
all.add(upper);
jframe.add(menubar,BorderLayout.NORTH);
jframe.add(buttonp,BorderLayout.SOUTH);
jframe.add(all,BorderLayout.CENTER);
jframe.pack();
Toolkit tool = Toolkit.getDefaultToolkit();
Dimension screen = tool.getScreenSize();
jframe.setLocation(screen.width/2-jframe.getWidth()/2,screen.height/2-jframe.getHeight()/2);
jframe.setTitle("TXT小说阅读器");
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
Display_txt display_demo = new Display_txt();
}
}

图一:



图二:


图三:


图四:


图五:



最后

以上就是仁爱钻石为你收集整理的java实现极简单的 TXT小说阅读器(第三版)的全部内容,希望文章能够帮你解决java实现极简单的 TXT小说阅读器(第三版)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部