StyledDocument 에서 글자 색깔 지정
수련
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.border.LineBorder;
import javax.swing.text.BadLocationException;
import javax.swing.text.StyledDocument;
public class TextpaneTest extends JFrame{
JScrollPane scrollPane;
JTextPane pane;
JTextField tf;
JButton bt;
public TextpaneTest(){
scrollPane = new JScrollPane();
pane = new JTextPane();
pane.setEnabled(false);
scrollPane.setViewportView(pane);
add(scrollPane);//scroll붙이기
JPanel p = new JPanel();
tf = new JTextField(18);//사이즈
bt = new JButton(보내기);
tf.addKeyListener(new KeyAdapter(){//이벤트처리 ##키보드
public void keyPressed(KeyEvent evt){
if(evt.getKeyCode() == KeyEvent.VK_ENTER){
if(!tf.getText().equals()){
String msg = tf.getText()+\r\n;
StyledDocument doc = pane.getStyledDocument();
try {//---
doc.insertString(doc.getLength(), msg, null);//문자열 입력
} catch (BadLocationException e) {
e.printStackTrace();
}
tf.setText();
pane.setCaretPosition(doc.getLength());
}
}
}
});
bt.addActionListener(new ActionListener(){//위와 같음.
public void actionPerformed(ActionEvent arg0) {
if(!tf.getText().equals()){
String msg = tf.getText()+\r\n;
//StyledDocument 선언..
StyledDocument doc = pane.getStyledDocument();//doc에 textpane 양식을 붙여넣음.
try {
doc.insertString(doc.getLength(), msg, null);//string msg을 입력받음.
} catch (BadLocationException e) {//swingtext의 예외처리
e.printStackTrace();
}
tf.setText();
pane.setCaretPosition(doc.getLength());//커서 위치.. 마지막에 붙여주기..(???)
}
}
});
p.add(tf);//패널에 : textfield 붙이기
p.add(bt);//패널에 : button 붙이기
add(p, BorderLayout.SOUTH);
setBounds(300,100,300,300);//창크기
setVisible(true);
}
public static void main(String[] args){//메인 호출
new TextpaneTest();
}
}
///////////////////////////////////////////////////
구글에서 뒤져보다가 발견한 실행 소스입니다.컴파일 해보니까 실행은 되구요,,
제가 질문할 사항은 JTextPane에 StyledDocument를 적용했는데요,,,
여기서 폰트 색깔, 폰트 크기 같은 건 어떻게 적용시키나요??
StyledDocument doc = textPane.getStyledDocument();
Style def = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
Style s = doc.addStyle(yellow, def);
StyleConstants.setForeground(s, Color.blue);
적용하면 될까요? 그런데 제가 한 번 해보았는데도 개념이 서지 않아서 그런가
잘 모르겠습니다.... 알려주세용~