Linux下javaswing程序文本框光标不跟随
时间: 2023-05-27 09:04:05 浏览: 109
Linux下java的Swing程序乱码解决
可能是由于Linux下的LookAndFeel不同于Windows,需要进行以下操作:
1. 在代码中为文本框设置UI属性:
```
textArea.setUI(new BasicTextAreaUI() {
@Override
protected void paintBackground(Graphics g) {
// 在此处绘制文本框的背景
}
});
```
2. 为文本框添加键盘事件监听器,获得光标位置并重新绘制文本框:
```
textArea.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
int caretPos = textArea.getCaretPosition();
textArea.repaint();
// 更新光标位置的其它代码
}
});
```
3. 在文本框的BasicUI类中覆盖paintSafely方法,绘制文本框中的文本和光标:
```
public class MyTextAreaUI extends BasicTextAreaUI {
@Override
protected void paintSafely(Graphics g) {
// 在此处绘制文本框中的文本和光标
}
}
```
4. 在文本框的UI属性中设置MyTextAreaUI类:
```
textArea.setUI(new MyTextAreaUI());
```
以上代码可根据实际情况进行修改和调整。
阅读全文