目录
要求
效果图
功能实现简释
一些方法
代码
要求
年末了,突然想起这学期还没发过一篇文章。想想还是发点什么吧,正好昨天在一个群里看到了一个java小程序的需求,今天无事可做,也稍微写了一下。实现了一些我觉得有必要的东西。
效果图●编写一个模拟书店库存管理的Java应用程序,要求实现如下功能:
1.编写图书概况管理程序,管理书籍名称、书号、出版社、单价和库存等信息:
2.编写图书信息录入方法
3.编写图书信息删除方法
后面的要求就不写了(实际上是我懒得实现,没啥意义)
功能实现简释
- 首先是录入,删除 *** 作时的信息输入方法。有着直接从终端控制台输入比较low的主观想法(也许是我的想法比较幼稚)。我采用的是新生成一个小的对话窗体。然后来到了想说的第一个点,就是,我们所希望的是在输入信息完点确定后,对话窗关闭。然后继续在Jframe上进行显示 *** 作。注意,关闭窗口的方式不能用EXIT_ON_CLOSE,那样会连着主窗口一起关闭。
- 就是删除 *** 作了,录入 *** 作比较简单,只需要直接写入就行。但根据编号进行删除就不是那么容易。我的想法很简单也很暴力,就是用一个新的文本文件去保存没有被删掉的信息。然后用该文件去覆写保存书本信息的文件。这种简单粗暴的文件保存方法,我从c一直沿用到java。接下来,就说一说暂存文件(上面提到的新的文本文件)的写入。在,我们读取到输入的编号的时候。我们就对书籍信息的文件进行一遍检索。建议使用BufferedReader,可以一行一行的读取。由于我们储存的信息格式是固定的(书名+“ ”+编号)。所以,使用StringTokenizer便理所当然了,将信息拆分成一个个字符串之后,就可以获得每本书的编号。用一个List集合去保存书籍信息,然后写入暂存文件就行了。判断编号是否与输入相同不能直接用==,用String类的equals方法(我写的时候没注意,错了几次才发现)
- 在Jtextarea里,想主动换行,可以使用"rn";文件记得关闭输入,输出流
- 额,由于本人不是太爱整洁。所以,分类在我这基本是不现实的。。。导致,我往往会将所有功能实现在一个类的一个或几个方法中。。。
setViewportView(); //JScrollPane添加组件,界面的方法(不是add!!!) FileWriter out = new FileWriter(filename,boolean); //后边的参数,true是追加,false是不追加。 List代码name = new ArrayList (); //字符串集合,常用方法,name.size()集合大小,name.get(index)获取集合的序号index元素。
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class BookSystem extends Jframe{ private JPanel ShowArea; private JPanel MenuArea; public void Myframe(){ Jframe jf = new Jframe("图书管理系统"); jf.setBounds(200,200,400,400); jf.setLayout(new BorderLayout()); JPanel ShowArea = new JPanel(); JPanel MenuArea = new JPanel(); //显示区 Jtextarea area = new Jtextarea(); area.setLineWrap(true); area.setEnabled(true); area.setSize(350,200); area.setRows(15); ShowArea.add(area); JScrollPane js = new JScrollPane(); js.setBounds(20,20,400,200); js.setViewportView(ShowArea); jf.add(js,BorderLayout.NORTH); //功能区 JButton jb1 = new JButton("录入"); JButton jb2 = new JButton("删除"); JButton jb3 = new JButton("刷新"); //监听 //录入 jb1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Jframe Mess = new Jframe("录入信息"); Mess.setBounds(250,250,300,150); Mess.setLayout(new BorderLayout()); JPanel jp1 = new JPanel(); JPanel jp2 = new JPanel(); JPanel jp3 = new JPanel(); jp1.add(new JLabel("书名")); jp2.add(new JLabel("编号")); JTextField name = new JTextField(); name.setColumns(15); jp1.add(name); JTextField no = new JTextField(); no.setColumns(15); jp2.add(no); JButton jb = new JButton("确定"); jp3.add(jb); //生成信息窗口 jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String name1 = name.getText(); String no1 = no.getText(); try { FileWriter out = new FileWriter("E:\图书管理\src\book.txt",true); BufferedWriter bufferedWriter = new BufferedWriter(out); bufferedWriter.write(name1+" "+no1); bufferedWriter.newline(); bufferedWriter.flush(); bufferedWriter.close(); Mess.dispose(); } catch (IOException a){ System.out.println(a.toString()); } } }); Mess.add(jp1,BorderLayout.NORTH); Mess.add(jp2,BorderLayout.CENTER); Mess.add(jp3,BorderLayout.SOUTH); Mess.setVisible(true); Mess.setDefaultCloseOperation(Jframe.DISPOSE_ON_CLOSE); } }); //删除 *** 作 jb2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Jframe jf = new Jframe("删除"); jf.setBounds(250,250,300,150); jf.setLayout(new BorderLayout()); JPanel jp = new JPanel(); JPanel jp2 = new JPanel(); JTextField no = new JTextField(); no.setColumns(15); JButton jb = new JButton("确定"); jp.add(new JLabel("编号")); jp.add(no); jp2.add(jb); //确定 jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String num = no.getText(); try{ FileReader in = new FileReader("E:\图书管理\src\book.txt"); FileWriter out = new FileWriter("E:\图书管理\src\temp.txt",false); BufferedReader bufferedReader = new BufferedReader(in); BufferedWriter bufferedWriter = new BufferedWriter(out); String str; Listname = new ArrayList (); while((str=bufferedReader.readLine())!=null){ name.add(str); } for(int i=0;i 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)