java文本域显示文件内容

2025-02-28 15:05:54
推荐回答(3个)
回答1:

给你代码。你的select这个按钮,加了两次侦听器,给你改了。
点选择选择一个文本文件,点确定,文件的内容会显示出来。
------------------------------------------------------------------------
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Test extends JFrame implements ActionListener {
JButton button;
JButton Select;
JButton btnOK;

JTextField textfield;
JPanel p;
JFileChooser fc = new JFileChooser();
TextArea area;
File file = null;

public Test() {
p = new JPanel(); // 建立一个面板
this.getContentPane().add(p);// 把面板添加到框架
p.add(new JButton("文本"));// 把一个文本按钮添加到面板
textfield = new JTextField(10);
p.add(textfield); // 把一个文本框添加到面板
Select = new JButton("浏览");
p.add(Select); // 把一个浏览按钮添加到面板
Select.addActionListener(this);
p.add(btnOK = new JButton("确定"));// 把一个确定按钮添加到面板
btnOK.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
// 当按下选择按钮,打开一个文件选择,文本框显示文件路径
if (e.getSource() == Select) {
int intRetVal = fc.showOpenDialog(this);
if (intRetVal == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
textfield.setText(file.getPath());
}
}
// 当按下确定按钮,生成一个新框架,框架里面有一个文本域,显示打开文件的内容
if (e.getSource() == btnOK) {
JFrame f = new JFrame();
f.setSize(400, 400);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
area = new TextArea();
f.add(area);
try {
readFile(area);
} catch (Exception ex) {

}

}
}

private void readFile(TextArea area) throws Exception {
if (file != null) {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
try {
while (br.ready()) {
area.setText(area.getText() + br.readLine() + "\r\n");
}
} finally {
br.close();
fr.close();
}
}
}

public static void main(String[] args) {

Test frame = new Test();

frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

}

回答2:

可以通过setText("文本内容")的形式进行文本域JTextArea赋值;
举例:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

public class AreaField extends javax.swing.JFrame {
private JTextField input;
private JTextArea output;

public static void main(String[] args) {
AreaField inst = new AreaField();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}

public AreaField() {
super();
initGUI();
}

private void initGUI() {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
input = new JTextField();
getContentPane().add(input, BorderLayout.NORTH);

input.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//这句话就是让文本域中显示文本框内容
output.setText("");
}
});
PlainDocument doc = (PlainDocument) input.getDocument();
doc.addDocumentListener(new DocumentListener(){

public void changedUpdate(DocumentEvent e) {

}

public void insertUpdate(DocumentEvent e) {
try {
//这里进行同步处理
Document doc = e.getDocument();
int offset = e.getOffset();
String text = doc.getText(offset, e.getLength());
Document adoc = output.getDocument();
adoc.insertString(adoc.getLength(), text, null);
} catch (BadLocationException e1) {
e1.printStackTrace();
}
}

public void removeUpdate(DocumentEvent e) {

}});
}
{
output = new JTextArea();
getContentPane().add(output, BorderLayout.CENTER);
output.setLineWrap(true);
}
pack();
setSize(400, 300);
}

}

回答3:

百度升级了,重复发了3个一样的问题,浪费了60分。