當前位置:編程學習大全網 - 編程語言 - 用Java語言用文本模擬數據庫

用Java語言用文本模擬數據庫

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.Font.*;

import javax.swing.event.*;

import javax.swing.filechooser.*;

public class Jishiben extends JFrame

{

static JTextArea ta;

static JFrame app;

static JLabel jl;

static JLabel jl2;

//各菜單的監聽均采用內部類實現, 子菜單的監聽采用內部類的內部類

class xianjian implements ActionListener

//新建文件監聽

{

public void actionPerformed(ActionEvent e)

{

ta.setText("");//將ta 的Text設置為空字符串,實現新建

}

}

class dakai implements ActionListener

//打開文件監聽

{

public void actionPerformed(ActionEvent e)

{

JFileChooser jf=new JFileChooser();

javax.swing.filechooser.FileFilter filter = new FileNameExtensionFilter("*.txt", "txt");

jf.addChoosableFileFilter(filter);//文件過濾默認僅顯示TXT文件,選擇所有文件才全顯示

jf.showOpenDialog(Jishiben.this);//顯示打開文件對話框

String fileName=jf.getSelectedFile().getAbsolutePath().trim();//獲取文件路徑及文件名

try{

BufferedReader br=new BufferedReader(new FileReader(fileName));

String S;

for(S=br.readLine();S!=null;S=br.readLine())//按行讀取文件

ta.append(S+"\n");//寫入ta,並執行換行

br.close();

}

catch(IOException a)

{

System.out.println("Open file error!");

a.printStackTrace();

}

}

}

//保存文件監聽

class baocun implements ActionListener

//註:保存文件後,用Windows自帶的記事本打開發現是只有壹行,這是因為文件是此記事本創建的。如果用此記事本打開顯示就正常了

{

public void actionPerformed(ActionEvent e)

{

JFileChooser jf = new JFileChooser();

javax.swing.filechooser.FileFilter filter = new FileNameExtensionFilter("*.txt", "txt");

jf.addChoosableFileFilter(filter);//文件過濾默認保存為TXT文件,選擇所有文件時需加後綴

jf.showSaveDialog(Jishiben.this);//顯示保存文件對話框

String fileName=jf.getSelectedFile().getAbsolutePath().trim();//獲取保存文件的路徑及輸入的文件名

if(fileName!=null)

try{

BufferedWriter bw=new BufferedWriter(new FileWriter(fileName+".txt"));//自動加上.txt的後綴

PrintWriter pw=new PrintWriter(bw);

pw.println(ta.getText());//寫入文件

bw.close();

}

catch (IOException a)

{

System.out.println("Save file error!");

a.printStackTrace();

}

}

}

//退出程序監聽

class tuichu implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

System.exit(0);//退出程序

}

}

//剪切的監聽

class jianqie implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

ta.cut();//剪切

}

}

//復制的監聽

class fuzhi implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

ta.copy();//復制

}

}

//粘貼的監聽

class zhantie implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

ta.paste();//粘貼

}

}

//全選的監聽

class quanxuan implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

ta.selectAll();//選擇全部

}

}

//刪除的監聽

class shanchu implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

ta.replaceRange("",ta.getSelectionStart(),ta.getSelectionEnd());//用空字符串替換選擇部分,實現刪除功能

}

}

//字體的監聽

class ziti implements ActionListener

{

JComboBox cb1;

JComboBox cb2;

JComboBox cb3;

Font[] fa={new Font("宋體",java.awt.Font.BOLD, 16),new Font("楷體",java.awt.Font.ITALIC, 16),new Font("Arial",java.awt.Font.PLAIN, 16)};

Font[] fb={new Font("宋體",java.awt.Font.BOLD, 16),new Font("宋體",java.awt.Font.ITALIC, 16),new Font("宋體",java.awt.Font.PLAIN, 16)};

Font[] ft={new Font("宋體",java.awt.Font.PLAIN, 16),new Font("宋體",java.awt.Font.PLAIN, 25),new Font("宋體",java.awt.Font.PLAIN, 10)};

class xuanziti implements ItemListener//內部類,用來監聽字體

{

public void itemStateChanged(ItemEvent a)

{

if(cb1.getSelectedIndex()==1) //根據組合框選擇的項,設置字體

ta.setFont(fa[1]);

else if(cb1.getSelectedIndex()==2)

ta.setFont(fa[2]);

else

ta.setFont(fa[0]);;

}

}

class xuanzixing implements ItemListener//內部類,用來監聽自行

{

public void itemStateChanged(ItemEvent a)

{

if(cb2.getSelectedIndex()==1)//根據組合框選擇的項,設置字體

ta.setFont(fb[1]);

else if(cb2.getSelectedIndex()==2)

ta.setFont(fb[2]);

else

ta.setFont(fb[0]);;

}

}

class xuandaxiao implements ItemListener//內部類,用來監聽字體大小

{

public void itemStateChanged(ItemEvent a)

{

if(cb3.getSelectedIndex()==1)//根據組合框選擇的項,設置字體

ta.setFont(ft[0]);

else if(cb3.getSelectedIndex()==2)

ta.setFont(ft[2]);

else

ta.setFont(ft[1]);

}

}

public void actionPerformed(ActionEvent e)

{

JDialog jd=new JDialog(app,"設置字體",false);//創建對話框

Container c=jd.getContentPane();

String [] ziti={"宋體 ","楷體 ","Arial "};

String [] zixing={"粗體 ","斜體 ", "正常 "};

String [] daxiao={"大 ","中 ","小 "};

cb1=new JComboBox(ziti);//創建三個組合框

cb2=new JComboBox(zixing);

cb3=new JComboBox(daxiao);

c.setLayout(new FlowLayout());

c.add(cb1);//在對話框中添加三個組合框分別用來控制字體,自行,大小

cb1.addItemListener(new xuanziti());//註冊監聽器

c.add(cb2);

cb2.addItemListener(new xuanzixing());

c.add(cb3);

cb3.addItemListener(new xuandaxiao());

jd.setSize(300,100);

jd.setVisible(true);

}

}

//狀態欄的監聽

class zhuangtailan implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

jl2.setText("總***:Ln "+ta.getLineCount());//最下面的面板中顯示總的行數

}

}

//幫助的監聽

class bangzhu implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

JDialog jd=new JDialog(app,"幫助主題",false);//創建對話框,以對話框顯示信息

Container C=jd.getContentPane();

jd.add(new JLabel("使用方法基本同Windows記事本,正在努力完善中。。。"));

jd.setSize(400,200);

jd.setVisible(true);

}

}

//關於記事本的監聽

class guanyujishiben implements ActionListener

{

JLabel jl=new JLabel("謝謝您的支持,湖南理工學院計算機系徐勤錢制作。");

int i=0;

class xiayitiao implements ActionListener//按鈕下壹條的監聽

{

public void actionPerformed(ActionEvent e)

{

String[] S={"謝謝您的支持,湖南理工學院計算機系徐勤錢制作。","盡最大的努力為您服務!","QQ:282196482,EMAIL:bjawawlove@163.com"};

if(i<S.length)

i++;

jl.setText((S[i]));//設置標簽的內容

}

}

class shangyitiao implements ActionListener//按鈕上壹條的監聽

{

public void actionPerformed(ActionEvent e)

{

String[] S={"謝謝您的支持,湖南理工學院計算機系徐勤錢制作。","盡最大的努力為您服務!","QQ:282196482,EMAIL:bjawawlove@163.com"};

if(i>0)

i--;

jl.setText((S[i]));//設置標簽的內容

}

}

public void actionPerformed(ActionEvent e)

{

JDialog jd=new JDialog(app,"歡迎使用!",false);//建立對話框

Container c=jd.getContentPane();

JPanel jp=new JPanel();//創建面板,加入到對話框中,便於布局管理

JButton jbs=new JButton("上壹條");//創建兩個按鈕,下壹條和上壹條

JButton jbx=new JButton("下壹條");

jbs.addActionListener(new xiayitiao());//按鈕註冊監聽器

jbx.addActionListener(new shangyitiao());

jp.add(jbs);//將按鈕添加到面板中

jp.add(jbx);

c.setLayout(new BorderLayout());

c.add(jl,BorderLayout.CENTER);//對話框中添加標簽,顯示信息

c.add(jp,BorderLayout.SOUTH);//將面板添加到對話框

jd.setSize(400,200);

jd.setVisible(true);

}

}

public Jishiben()

{

super("記事本");

//創建菜單欄,並加入各下拉式菜單及菜單項

JMenuBar mBar=new JMenuBar();

JMenu[] mA={new JMenu("文件(F)"),new JMenu("編輯(E)"),new JMenu("格式(O)"),new JMenu("查看(V)"),new JMenu("幫助(H)")};

char[][] mC={{'F','E','O','V','H'},{'N','O','S','X'},{'U','T','C','P','L','A'},{'F'},{'S'},{'H','A'}};

char[][] mD={{'N','O','S'},{'Z','X','C','V','A'}};

JMenuItem[][] mI={{new JMenuItem("新建(N)"),new JMenuItem("打開(O)"),

new JMenuItem("保存(S)"),new JMenuItem("退出(X)")},

{new JMenuItem("剪切(T)"),new JMenuItem("復制(C)"),

new JMenuItem("粘貼(P)"),new JMenuItem("全選(A)"),new JMenuItem("刪除(L)")},

{new JMenuItem("字體(F)")},{new JMenuItem("狀態欄(S)")},

{new JMenuItem("幫助(H)"),new JMenuItem("關於記事本(A)")}};

setJMenuBar(mBar);

int i,j;

for(i=0;i<mA.length;i++)

{

mBar.add(mA[i]);//添加下拉式菜單

mA[i].setMnemonic(mC[0][i]);

for(j=0;j<mI[i].length;j++)

{

mA[i].add(mI[i][j]);//添加菜單項

mI[i][j].setMnemonic(mC[i+1][j]);//設置助記符

}

}

//各個菜單項註冊監聽器

mI[0][0].addActionListener(new xianjian());

mI[0][1].addActionListener(new dakai());

mI[0][2].addActionListener(new baocun());

mI[0][3].addActionListener(new tuichu());

mI[1][0].addActionListener(new jianqie());

mI[1][1].addActionListener(new fuzhi());

mI[1][2].addActionListener(new zhantie());

mI[1][3].addActionListener(new quanxuan());

mI[1][4].addActionListener(new shanchu());

mI[2][0].addActionListener(new ziti());

mI[3][0].addActionListener(new zhuangtailan());

mI[4][0].addActionListener(new bangzhu());

mI[4][1].addActionListener(new guanyujishiben());

}//構造函數Jishiben中添加了菜單欄及註冊了菜單的監聽器

public static void main(String args[])//程序入口,主函數

{

app=new Jishiben();//新建帶菜單欄的框架

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

app.setSize(800,600);

Container c=app.getContentPane();//獲得內容窗格

c.setLayout(new BorderLayout());//設置布局管理為邊界布局

ta=new JTextArea();//新建文本區域

JScrollPane sta=new JScrollPane(ta);

jl2=new JLabel("總***:Ln 0",JLabel.RIGHT);//新建標簽

jl2.setSize(800,20);

c.add(sta,BorderLayout.CENTER);//在BorderLayout.CENTER中添加文本區域作為主編輯區

c.add(jl2,BorderLayout.SOUTH);//在BorderLayout.SOUTH中添加標簽用來查看狀態

app.setVisible(true);

}

}//類Jishiben結束

  • 上一篇:海門大橋旅遊景點介紹視頻海門大橋旅遊景點介紹視頻
  • 下一篇:當內容為英文字母時其在26字母中的其後三個字母代替該字母,若替代字母超過z,從a、b….字母輪回,其它字
  • copyright 2024編程學習大全網