텍스트 필드에서 텍스트의 색상을 변경할 수 있습니까? 인터프리터를 작성하려고하는데 실제로 텍스트의 색상을 어떻게 변경하겠습니까? 시각. 예를 들어 내가 텍스트 필드에 입력 한 단어는 다음과 같습니다스윙 텍스트 필드에서 지연된 텍스트 색상 변경
printf("hi");
단어 printf
몇 초 후 녹색이된다.
가능합니까?
텍스트 필드에서 텍스트의 색상을 변경할 수 있습니까? 인터프리터를 작성하려고하는데 실제로 텍스트의 색상을 어떻게 변경하겠습니까? 시각. 예를 들어 내가 텍스트 필드에 입력 한 단어는 다음과 같습니다스윙 텍스트 필드에서 지연된 텍스트 색상 변경
printf("hi");
단어 printf
몇 초 후 녹색이된다.
가능합니까?
package test;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
public class BlinkColorTextField {
BlinkColorTextField() {
final JTextField blinkingText = new JTextField("Red & Blue");
ActionListener blinker = new ActionListener() {
boolean isRed = true;
public void actionPerformed(ActionEvent ae) {
if (isRed) {
blinkingText.setForeground(Color.BLUE);
} else {
blinkingText.setForeground(Color.RED);
}
isRed = !isRed;
}
};
Timer timer = new Timer(1000, blinker);
timer.start();
JOptionPane.showMessageDialog(null, blinkingText);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
new BlinkColorTextField();
}
});
}
}
JTextField 대신 JEditorPane/JTextPane을 사용해야하며 paintComponent 메서드를 재정 의하여 텍스트/문자열을 그릴 수 있습니다.
실시간 요소의 경우 새 타이머를 만들어 일정 시간 동안 잠자기 상태로 사용해야합니다. –
나는'JEditorPane' 또는'JTextPane'의'paintComponent()'를 오버라이드 (override) 할 것을 권유하면서 그것을 처음 읽었습니다. 더 명확하게 편집 할 수 있습니까? –
이 시도 :
HighlightPainter greenPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.GREEN);
//in a thread...
Highlighter h = tf.getHighlighter();
h.addHighlight(offset, offset+length, greenPainter);
어떤 HTML 태그에 대해? – mishadoff