JTextField
OSX 上の Swing アプリケーションでテキストを編集すると、テキストが文字化けします。文字を挿入または削除するときに最も顕著ですが、カーソルを移動するだけでアーティファクトが発生します。データは問題ありませんが、UI レンダリングはそうではありません。
これは何が原因で、どうすれば修正できますか?
com.apple.laf.AquaLookAndFeel
このサンプルプログラムのように、私は を使用しています。テキストを入力し、矢印キーでカーソルを動かして、奇妙な様子を観察してください。
import java.awt.*;
import javax.swing.*;
class TextFieldDisplay {
public static void main(String[] args) {
MainWindow app = new MainWindow();
}
}
class MainWindow extends JFrame {
public MainWindow() {
try {
UIManager.setLookAndFeel("com.apple.laf.AquaLookAndFeel");
} catch(Exception e) {
System.out.println("AquaLookAndFeel is not supported on your platform.");
System.exit(1);
}
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
setMinimumSize(new Dimension(300, 100));
JPanel innerPanel = new JPanel();
JScrollPane scrollPane = new JScrollPane();
scrollPane.setPreferredSize(new Dimension(250, 20));
scrollPane.setViewportView(innerPanel);
JPanel mainPanel = new JPanel();
getContentPane().add(mainPanel);
mainPanel.add(innerPanel);
JTextField textField = new JTextField();
textField.setPreferredSize(new Dimension(250, 20));
innerPanel.add(textField);
pack();
}
}
SSCCE を書いているときに、JScrollPane
.
関連性があるかどうかはわかりませんが1.6.0_51
、Retina ディスプレイで Apple Java バージョンを使用しています。