我如何使用JTextPane将一段文本设置为“CODE”,就像你经常在论坛上看到的那样,或者你在堆栈溢出时看到这里?
public static main(String[] args) {
/**
* Look at this Code Block, ain't it grand?
* I wish I had something like this in my program.
*/
}
或者我是如何在维基百科上看到的,文本是这样的: http://img39.imageshack.us/img39/4516/example.JPG
谢谢!
最终更新 Vishal K的回答正是我所需要的。正如所建议的那样,并非重复。
更新
感谢您的回复。我正在寻找的内容与上面建议的可能答案之间的区别在于,我不仅对更改字体感兴趣,而且还添加背景(围绕所述背景的边框将是一个加号,但不是必需的。我不需要做语法高亮。
我认为HTML标签可能是要走的路,如果是这样,那真的是问题:如何使用html以这种方式格式化代码?我将使用答案中提供的示例并让您知道。
P.s. P.在提出这个问题之前,我已经阅读了oracle教程的链接。
答案 0 :(得分:1)
如何使用JTextPane设置文本部分的样式为" CODE,"喜欢你 经常在论坛上看到,或者你在堆栈溢出时看到这里?
使用HTML标签。但在此之前,您必须将contentType设置为(" text / html")
这是一个简单的例子:
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JTextPane;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class TextPaneDemo {
static void addIt(JTabbedPane tabbedPane, String text) {
JPanel panel = new JPanel();
JTextPane ta = new JTextPane();
ta.setContentType("text/html");
ta.setText("<HTML><BODY><CODE> import java.io.*; <br> public class MyIO{}</CODE><br></BODY></HTML>");
JScrollPane jsp = new JScrollPane(ta);
panel.setLayout(new BorderLayout());
panel.add(jsp);
tabbedPane.addTab(text, panel);
}
public static void main(String args[]) {
JFrame f = new JFrame("JTabbedPane Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = f.getContentPane();
JTabbedPane tabbedPane = new JTabbedPane();
addIt(tabbedPane, "Tab One");
content.add(tabbedPane, BorderLayout.CENTER);
f.setSize(300, 200);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}