一个窗口,其中包含一个按钮和一个组件(JTextArea,JTextPane等),这些组件无法修改,其中会根据某些工作的执行情况出现一些字符串。 从图中可以看出,如果作业成功,文本将为黑色,如果有错误则会标记为红色。
我设法使用JTextArea和JButton正确地做了一切,但我发现你不能逐行改变字符串的颜色。
我读过应该使用JTextPane,但我还没有能够使用它。 这是我写的代码:
public class Example {
public Example() {
JFrame frame = new JFrame();
JTextPane pane = new JTextPane();
JButton button = new JButton("Button");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pane.setPreferredSize(new Dimension(200, 200));
frame.add(pane);
frame.add(button);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new Example();
}
}
当我运行程序时,这就是创建的内容:
TextPane在哪里?
另外,在我使用append()在JTextArea中添加文本之前,我还没有找到与JTextPane类似的方法吗?你如何使用它? 如何更改单行的颜色?
我已经阅读并看过并试过在互联网上找到的各种例子,但我无法完成任何事情...... 有类似的例子吗?
我为" generic"道歉请求...
由于
答案 0 :(得分:3)
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
public class Example {
public Example() {
JFrame frame = new JFrame();
JTextPane pane = new JTextPane();;
JButton button = new JButton("Button");
addColoredText(pane, "Red Text\n", Color.RED);
addColoredText(pane, "Blue Text\n", Color.BLUE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pane.setPreferredSize(new Dimension(200, 200));
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.getContentPane().add(button, BorderLayout.WEST);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new Example();
}
public void addColoredText(JTextPane pane, String text, Color color) {
StyledDocument doc = pane.getStyledDocument();
Style style = pane.addStyle("Color Style", null);
StyleConstants.setForeground(style, color);
try {
doc.insertString(doc.getLength(), text, style);
}
catch (BadLocationException e) {
e.printStackTrace();
}
}
}
试试这个例子
答案 1 :(得分:2)
这是一个更好的开始:
for l=1,level do --this line
这是非常基本的,但应该让你开始。当您必须添加文本并级联颜色时,可以创建不同的方法。
答案 2 :(得分:0)
我建议你查看JavaFX,它有一个更好的用户界面。
但是,您已经在使用JPanel和JButton。您可以使用JLabel显示所需的文本,并使用JLabel.setTextFill(Color.WHITESMOKE)
设置文本的颜色。