java根据文件名 读取文本文件的内容逐行显示到JTextArea里
一个界面有一个JComboBox和一个JTextArea,再无其他组件,不需要选择文件。一个JComboBox的选项对应一个文本文件。给JComboBox添加消息映射,根...
一个界面有一个JComboBox和一个JTextArea,再无其他组件,不需要选择文件。一个JComboBox的选项对应一个文本文件。
给JComboBox添加消息映射,根据JComboBox的选项来确定读取哪一个文本文件并将读取到的内容逐行显示到JTextArea里。
希望诸位大侠帮忙写一个方法!!急! 展开
给JComboBox添加消息映射,根据JComboBox的选项来确定读取哪一个文本文件并将读取到的内容逐行显示到JTextArea里。
希望诸位大侠帮忙写一个方法!!急! 展开
4个回答
展开全部
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容,之后将内容增加到JTextArea。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
JTextArea.add(str);//此处将内容写入到JTextArea即可
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
JTextArea.add(str);//此处将内容写入到JTextArea即可
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
展开全部
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
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.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Test extends JFrame{
//t1.txt t2.txt放在根目录
String[] s={"t1.txt","t2.txt"};
private JTextArea t=new JTextArea();
private JComboBox c=new JComboBox();
private JPanel p=new JPanel();;
private Toolkit k=Toolkit.getDefaultToolkit();
private Dimension screen=k.getScreenSize();
private JScrollPane js=new JScrollPane();
public Test(){
setVisible(true);
setSize(500, 500);
setLocation(screen.width/2-250,screen.height/2-250);
setDefaultCloseOperation(EXIT_ON_CLOSE);
p.setVisible(true);
p.setLayout(new BorderLayout());
add(p);
js.add(t);
js.setVisible(true);
js.setViewportView(t);
for(String ss:s){
c.addItem(ss);
}
p.add(c,BorderLayout.NORTH);
p.add(js,BorderLayout.CENTER);
c.addActionListener(new Action());
}
public static void main(String[] arg){
new Test();
}
class Action implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
t.setText("");
String item=(String) c.getSelectedItem();
String temp=null;
try {
BufferedReader br=new BufferedReader(new FileReader(item));
while((temp=br.readLine())!=null){
t.append(temp+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
}
}
import java.awt.Dimension;
import java.awt.Toolkit;
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.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Test extends JFrame{
//t1.txt t2.txt放在根目录
String[] s={"t1.txt","t2.txt"};
private JTextArea t=new JTextArea();
private JComboBox c=new JComboBox();
private JPanel p=new JPanel();;
private Toolkit k=Toolkit.getDefaultToolkit();
private Dimension screen=k.getScreenSize();
private JScrollPane js=new JScrollPane();
public Test(){
setVisible(true);
setSize(500, 500);
setLocation(screen.width/2-250,screen.height/2-250);
setDefaultCloseOperation(EXIT_ON_CLOSE);
p.setVisible(true);
p.setLayout(new BorderLayout());
add(p);
js.add(t);
js.setVisible(true);
js.setViewportView(t);
for(String ss:s){
c.addItem(ss);
}
p.add(c,BorderLayout.NORTH);
p.add(js,BorderLayout.CENTER);
c.addActionListener(new Action());
}
public static void main(String[] arg){
new Test();
}
class Action implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
t.setText("");
String item=(String) c.getSelectedItem();
String temp=null;
try {
BufferedReader br=new BufferedReader(new FileReader(item));
while((temp=br.readLine())!=null){
t.append(temp+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
}
}
追问
谢谢您!请问我是用eclipse写的代码,那两个文件放到哪啊?
java.io.FileNotFoundException: t1.txt (系统找不到指定的文件。)还有就是JComboBox组件里的各项不是文件名,只是每一项对应一个不同的文件罢了。
还有那个JComboBox怎么添加的是这个c.addActionListener(new Action());而不是ItemListener啊?我的最初目的是实现的ItemStateChanged()的方法。怎么改改嘛高手!
追答
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
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.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Test extends JFrame{
String[] s={"文件一","文件二"};
String[] path={"t1.txt","t2.txt"};
private JTextArea t=new JTextArea();
private JComboBox c=new JComboBox();
private JPanel p=new JPanel();;
private Toolkit k=Toolkit.getDefaultToolkit();
private Dimension screen=k.getScreenSize();
private JScrollPane js=new JScrollPane();
public Test(){
setVisible(true);
setSize(500, 500);
setLocation(screen.width/2-250,screen.height/2-250);
setDefaultCloseOperation(EXIT_ON_CLOSE);
p.setVisible(true);
p.setLayout(new BorderLayout());
add(p);
js.add(t);
js.setVisible(true);
js.setViewportView(t);
for(String ss:s){
c.addItem(ss);
}
p.add(c,BorderLayout.NORTH);
p.add(js,BorderLayout.CENTER);
c.addActionListener(new Action());
}
public static void main(String[] arg){
new Test();
}
class Action implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
t.setText("");
String path1=null;
String item=(String) c.getSelectedItem();
if(item.equals(s[0]))
path1=path[0];
else
path1=path[1];
String temp=null;
try {
BufferedReader br=new BufferedReader(new FileReader(path1));
while((temp=br.readLine())!=null){
t.append(temp+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
凑热门,读当前目录
js.setViewportView(t);
java.io.File cur=new java.io.File("."); // ----------------
for(String ss:cur.list()){ //
js.setViewportView(t);
java.io.File cur=new java.io.File("."); // ----------------
for(String ss:cur.list()){ //
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环读取呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询