美好的一天。 所以我正在研究这个项目,我有一个问题。 我有一个百科全书,我想添加一个文本编辑器。 我有一个文本和一个scrollpanel,我想,当我选择一个文本的句子,然后按一个按钮,更改字体,使文本变为粗体,斜体,下划线等。我该怎么做?
我的代码看起来像这样,text.txt是一个带有“aaaa”的文本文件。
package test;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Rectangle;
import javax.swing.JFrame;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class test extends JFrame {
private static final long serialVersionUID = 1L;
JFrame test = new JFrame("test");
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test frame = new test();
frame.setVisible(false);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public test() {
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setBounds(new Rectangle(0, 0, 0, 0));
getContentPane().setLayout(null);
test.setName("frame");
test.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
test.setBounds(300,0,800,800);
test.setResizable(false);
test.getContentPane().setLayout(null);
JScrollPane text = new JScrollPane();
text.setBackground(Color.DARK_GRAY);
text.setBounds(0, 0, 500, 400);
getContentPane().add(text);
JTextArea textarea = new JTextArea();
setBackground(Color.WHITE);
textarea.setEditable(false);
textarea.setWrapStyleWord(true);
textarea.setLineWrap(true);
try{
FileInputStream fstream = new FileInputStream("D:\\Facultate\\anul 2\\Java Workspace\\test\\src\\text.txt");
DataInputStream in = new DataInputStream(fstream);
Reader reader = new InputStreamReader(in);
textarea.read(reader, fstream);
}catch(Exception e){System.err.println("Error: " + e.getMessage());}
text.setViewportView(textarea);
}
}
答案 0 :(得分:1)
从文档中:“JTextArea是一个显示纯文本的多行区域。”因此,如果你想在一个区域中使用不同的字体等,你将不得不使用另一个控件,可能是RTFEditorKit
答案 1 :(得分:0)
Java有一个令人惊叹的免费文本编辑器。你可以找到它 下载最适合您需求的即用型CKEditor软件包。 它是由Amazon Web Services分发的产品。