use of javax.swing.text.DefaultCaret in project java-swing-tips by aterai.
the class LineCursorTextArea method paintComponent.
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Caret c = getCaret();
if (c instanceof DefaultCaret) {
Graphics2D g2 = (Graphics2D) g.create();
Rectangle r = SwingUtilities.calculateInnerArea(this, null);
DefaultCaret caret = (DefaultCaret) c;
int y = caret.y + caret.height - 1;
g2.setPaint(LINE_COLOR);
g2.drawLine(r.x, y, (int) r.getMaxX(), y);
g2.dispose();
}
}
use of javax.swing.text.DefaultCaret in project java-swing-tips by aterai.
the class HighlightCursorTextArea method paintComponent.
@Override
protected void paintComponent(Graphics g) {
Caret c = getCaret();
if (c instanceof DefaultCaret) {
Graphics2D g2 = (Graphics2D) g.create();
DefaultCaret caret = (DefaultCaret) c;
Rectangle r = SwingUtilities.calculateInnerArea(this, rect);
r.y = caret.y;
r.height = caret.height;
g2.setPaint(LINE_COLOR);
g2.fill(r);
g2.dispose();
}
super.paintComponent(g);
}
use of javax.swing.text.DefaultCaret in project java-swing-tips by aterai.
the class HighlightCursorTextArea method updateUI.
@Override
public void updateUI() {
super.updateUI();
setOpaque(false);
Caret caret = new DefaultCaret() {
// [UnsynchronizedOverridesSynchronized]
// Unsynchronized method damage overrides synchronized method in DefaultCaret
@SuppressWarnings("PMD.AvoidSynchronizedAtMethodLevel")
@Override
protected synchronized void damage(Rectangle r) {
if (Objects.nonNull(r)) {
JTextComponent c = getComponent();
x = 0;
y = r.y;
width = c.getSize().width;
height = r.height;
c.repaint();
}
}
};
// caret.setBlinkRate(getCaret().getBlinkRate());
caret.setBlinkRate(UIManager.getInt("TextArea.caretBlinkRate"));
setCaret(caret);
}
use of javax.swing.text.DefaultCaret in project NJAU-OS_sourse_design-simulated_linux by 404874351.
the class Dashboard method initConsole.
/**
* 初始化控制台
*/
public void initConsole() {
// 绘制控制台富文本
doc = this.console.getStyledDocument();
// 保持滚动条在底端
DefaultCaret caret = (DefaultCaret) this.console.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
// 设置控制台输出样式
this.logStyle = new SimpleAttributeSet();
StyleConstants.setFontFamily(this.logStyle, "Microsoft YaHei UI");
StyleConstants.setFontSize(this.logStyle, 14);
StyleConstants.setForeground(this.logStyle, Color.DARK_GRAY);
this.infoStyle = new SimpleAttributeSet();
StyleConstants.setFontFamily(this.infoStyle, "Microsoft YaHei UI");
StyleConstants.setFontSize(this.infoStyle, 14);
StyleConstants.setForeground(this.infoStyle, Color.BLUE);
this.errorStyle = new SimpleAttributeSet();
StyleConstants.setFontFamily(this.errorStyle, "Microsoft YaHei UI");
StyleConstants.setFontSize(this.errorStyle, 14);
StyleConstants.setForeground(this.errorStyle, Color.RED);
this.successStyle = new SimpleAttributeSet();
StyleConstants.setFontFamily(this.successStyle, "Microsoft YaHei UI");
StyleConstants.setFontSize(this.successStyle, 14);
StyleConstants.setForeground(this.successStyle, Color.GREEN);
}
Aggregations