【问题标题】:Insert document (.doc) in TextArea java在 TextArea java 中插入文档 (.doc)
【发布时间】:2014-04-19 04:32:03
【问题描述】:

我想在我的 TextArea 中插入文档。我该怎么做?

我找到了setDocument(Document document)方法,但是我不明白,如何创建Document类型的变量。

import javax.swing.*;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;


/**
 * Created by Oleg on 18.04.14.
 */

public class MainForm extends JDialog implements ItemListener, ActionListener {

JPanel panel = new JPanel(/*new FlowLayout(FlowLayout.CENTER,320,80)*/);

CheckboxGroup cbG = new CheckboxGroup();
Checkbox rap, punk, rock, drum;

JLabel label1, label2;

JTextArea textArea;

public MainForm() {
    setSize(640, 860);
    setTitle("Main");

    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

    GridLayout experimentLayout = new GridLayout(5,4);

    //setLayout(new BorderLayout(10,10));

    cbG = new CheckboxGroup();

    rap = new Checkbox("Rap", cbG, false);
    punk = new Checkbox("Punk", cbG, false);
    drum = new Checkbox("Drum", cbG, false);
    rock = new Checkbox("Rock", cbG, false);

    label1 = new JLabel("<html><font color='red'>Choose kind of music: </font></html>");
    label1.setFont(new Font("Arial", Font.BOLD, 25));

    label2 = new JLabel("asa");

    panel.setLayout(experimentLayout);
    panel.add(label1);
    panel.add(label2);
    panel.add(rap);
    panel.add(punk);
    panel.add(drum);
    panel.add(rock);
    panel.add(textArea);


    add(panel, BorderLayout.NORTH);

    rap.addItemListener(this);
    punk.addItemListener(this);
    drum.addItemListener(this);
    rock.addItemListener(this);
}

@Override
public void itemStateChanged(ItemEvent e) {
    repaint();


    //if(e.getItem().equals(punk.getLabel()))
        //textArea.setDocument(j);




}

@Override
public void actionPerformed(ActionEvent e) {

}

我想编写一个程序,在 TextArea 字段文档中显示一个复选框选项,其中包含有关流派的信息。有一个事件负责选择标志,将来它应该在 TextArea 中加载文档),但我无法加载文档..

【问题讨论】:

  • 发布您的其余代码并解释什么不起作用

标签: java swing document


【解决方案1】:

一种方法:

    Document doc = new PlainDocument();
    SimpleAttributeSet set = new SimpleAttributeSet();
    try {
        doc.insertString(0, "your content", set);
    } catch (BadLocationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    textArea.setDocument(doc);

camickr 提到你也可以使用:

    textArea.append("your content") 

对于JTextField,请查看此链接

How to insert a 'String' in a 'JTextField' to a specific position?

【讨论】:

  • 我可以插入文档吗?
  • 在您的情况下,您可以使用 insert(),或将 JTextArea 更改为 JTextField 并使用链接中提供的方法。 JTextArea 和 JTextField 的区别在于是否可以支持多行。这个链接stackoverflow.com/questions/16552708/…是一个很好的例子来说明差异
  • 谢谢),但如果我要使用 JTextField,如何加载文档?
  • @ZhangMeng,JTextArea does not have setDocument(),当然可以。 setDocument(...) 方法可以在 JTextComponent 类中找到。此外,向 JTextArea 添加文本的常用方法是使用 append(...) 方法。
猜你喜欢
  • 1970-01-01
  • 2012-08-29
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 2011-02-08
  • 2021-09-18
相关资源
最近更新 更多