我自己用来管理函数们的,本来是想建自己的库,可后来工作后觉得这些东西不是很常用了。
//MyTools.java
//MyBase
package gangZi;
import javax.swing.JFrame;
public class MyTools extends JFrame{
Tools p = new Tools();
public MyTools(){
super("MyTools");
this.add(p);
this.setSize(600, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
new MyTools();
}
}
//Tools.java
package gangZi;
import java.awt.Color;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Tools extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel lb_type = null;
private JLabel lb_name = null;
private JLabel lb_content = null;
private JComboBox cbx = null;
private JTextField tf = null;
private JTextArea ta = null;
private JButton bt_search = null;
private JButton bt_insert = null;
private JScrollPane jScrollPane = null;
/**
* This method initializes cbx
*
* @return javax.swing.JComboBox
*/
private JComboBox getCbx() {
if (cbx == null) {
String[] items={"概念","公式","方法"};
cbx = new JComboBox(items);
cbx.setBounds(new Rectangle(148, 1, 150, 30));
cbx.setSize(200, cbx.getHeight());
cbx.setSelectedItem("方法");
cbx.setEditable(false);
}
return cbx;
}
/**
* This method initializes tf
*
* @return javax.swing.JTextField
*/
private JTextField getTf() {
if (tf == null) {
tf = new JTextField();
tf.setBounds(new Rectangle(148, 31, 200, 30));
}
return tf;
}
/**
* This method initializes ta
*
* @return javax.swing.JTextArea
*/
private JTextArea getTa() {
if (ta == null) {
ta = new JTextArea();
ta.setBounds(new Rectangle(62, 92, 419, 250));
ta.setBackground(Color.LIGHT_GRAY);
}
return ta;
}
/**
* This method initializes bt_search
*
* @return javax.swing.JButton
*/
private JButton getBt_search() {
if (bt_search == null) {
bt_search = new JButton();
bt_search.setBounds(new Rectangle(111, 376, 101, 29));
bt_search.setText("查找");
bt_search.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionPerformed_search(e);
}
});
}
return bt_search;
}
/**
* This method initializes bt_insert
*
* @return javax.swing.JButton
*/
private JButton getBt_insert() {
if (bt_insert == null) {
bt_insert = new JButton();
bt_insert.setBounds(new Rectangle(256, 376, 91, 30));
bt_insert.setText("增加");
bt_insert.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionPerformed_insert(e);
}
});
}
return bt_insert;
}
/**
* @param args
*/
// public static void main(String[] args) {
// // TODO 自动生成方法存根
//
// }
/**
* This is the default constructor
*/
public Tools() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
lb_content = new JLabel();
lb_content.setText("内容:");
lb_content.setBounds(new Rectangle(44, 61, 80, 30));
lb_name = new JLabel();
lb_name.setText("名称:");
lb_name.setBounds(new Rectangle(44, 31, 80, 30));
lb_type = new JLabel();
lb_type.setText("类型:");
lb_type.setBounds(new Rectangle(44, 1, 79, 30));
this.setLayout(null);
this.setBounds(new Rectangle(0, 0, 550, 450));
this.add(lb_type, null);
this.add(lb_name, null);
this.add(lb_content, null);
this.add(getCbx(), null);
this.add(getTf(), null);
this.add(getTa(), null);
ta.setText(null);
this.add(getBt_search(), null);
this.add(getBt_insert(), null);
this.add(getJScrollPane(), null);
}
public void actionPerformed_search(ActionEvent e){
String fileName=null;
if(cbx.getSelectedItem().equals("概念"))fileName="concepts.txt";
if(cbx.getSelectedItem().equals("公式"))fileName="formulas.txt";
if(cbx.getSelectedItem().equals("方法"))fileName="functions.txt";
readFromFile(fileName);
}
public void actionPerformed_insert(ActionEvent e){
String fileName=null;
if(cbx.getSelectedItem().equals("概念"))fileName="concepts.txt";
if(cbx.getSelectedItem().equals("公式"))fileName="formulas.txt";
if(cbx.getSelectedItem().equals("方法"))fileName="functions.txt";
writeToFile(fileName);
}
public void readFromFile(String fileName){
try{
FileReader f=new FileReader(fileName);
BufferedReader ff=new BufferedReader(f);
while(ff.ready()){
String str=ff.readLine();
if(tf.getText().isEmpty()){
while(ff.ready()){
if(str.contains("//"))
ta.append(str+'\n');
str=ff.readLine();
}
break;
}
if(str.contains(tf.getText())){
while(ff.ready()&&!str.contains("****")){
ta.append(str+'\n');
str=ff.readLine();
}
break;
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
public void writeToFile(String fileName){
try{
FileWriter f=new FileWriter(fileName,true);
BufferedWriter ff=new BufferedWriter(f);
ff.write('\n'+"//"+tf.getText());
String str=ta.getText();
ff.write('\n'+str);
ff.write('\n'+"//*****************************************************************************");
ff.flush();
ff.close();
}catch(IOException e){
e.printStackTrace();
}
ta.setText(null);
tf.setText(null);
}
public void println(){
System.out.println("到这里了");
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(46, 90, 453, 249));
jScrollPane.setViewportView(ta);
}
return jScrollPane;
}
} // @jve:decl-index=0:visual-constraint="10,10"