java图形界面关键字_怎样用Java编写一个图形界面,要求可以利用关键词查询txt中的内容...

这篇博客介绍了如何使用Java的Swing库创建一个图形界面,以便用户输入关键词来搜索TXT文件内容。通过BufferedReader读取文件,结合正则表达式或contains方法实现文本查找功能。提供了一个简单的代码示例,但未处理换行问题,读者可自行扩展。
摘要由CSDN通过智能技术生成

楼主想问技术吗,还是代码,首先说技术

完成你说的功能用到的技术如下:用swing写界面,然后用输入流按行读取文件,用正则表达式或者直接contain方法查找。

我写了一个简单的版本你看一下,没考虑换行问题,很容易,自己加就行

3275bf71cd676d40d739ddce45ccfee3.png

//界面类

package test;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class MainFrame extends JFrame {

private JPanel panel;

private JLabel lbl1,lbl2;

private JTextField tf,tf2;

private JButton btn;

private JTextArea ta;

BufferedReader br;

public void init() {

this.setTitle("load txt");

this.setResizable(false);

this.setBounds(100,100,600,400);

}

public MainFrame() {

init();

panel=new JPanel();

this.setContentPane(panel);

panel.setLayout(null);

lbl1=new JLabel();

lbl1.setText("请输入查找字符");

lbl1.setBounds(10,10,100,30);

panel.add(lbl1);

tf=new JTextField();

tf.setBounds(110, 10, 200, 30);

panel.add(tf);

lbl2=new JLabel("请输入文件路径");

lbl2.setBounds(10,50,100,30);

panel.add(lbl2);

tf2=new JTextField();

tf2.setBounds(110, 50, 200, 30);

panel.add(tf2);

btn=new JButton("查找");

btn.setBounds(10,90,60,30);

panel.add(btn);

ta=new JTextArea();

ta.setBounds(10,130,300,270);

panel.add(ta);

btn.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try {

ta.setText("");

br=new BufferedReader(new FileReader(tf2.getText()));

StringBuilder sb=new StringBuilder();

String line="";

String regex=tf.getText();

int count=1;

while((line=br.readLine())!=null) {

if(line.contains(regex)) {

ta.append("在第"+count+"行找到了"+regex+"\r\n");

}

count++;

}

} catch (FileNotFoundException e1) {

e1.printStackTrace();

} catch (IOException e1) {

e1.printStackTrace();

}

}

});

}

}

//主类

package test;

public class AssertTest {

public static void main(String[] args) {

MainFrame m=new MainFrame();

m.setVisible(true);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值