我在标准JPanel中的JScrollPane中有一个TextArea。
JPanel panelMain = new JPanel();
panelMain.setBorder(titledBorder1);
panelMain.setBounds(new Rectangle(2, 5, 970, 700));
panelMain.setLayout(null);
JTextArea fieldBody = new JTextArea();
JScrollPane fieldBodyScrollPane = new JScrollPane(fieldBody);
fieldBodyScrollPane.setBounds(70, 140, 790, 500);
panelMain.add(fieldBodyScrollPane);
当我在一行中键入足够的文本时,水平旋钮出现 - 到目前为止还不错。但是当我开始左右移动旋钮时,文本会变得模糊(见图)。有趣的是,当我上下移动textarea时,没有什么奇怪的事情发生。
我在Unity中使用Ubuntu 12.04。这个图形神器之前从未出现过。有什么提示可能是什么问题?
答案 0 :(得分:4)
import java.awt.GridLayout;
import javax.swing.*;
import javax.swing.border.*;
public class CaseForLayoutsNumber547 {
CaseForLayoutsNumber547() {
Border titledBorder1 = new TitledBorder("Case for Layouts #547");
// START: code snippet variant
JPanel panelMain = new JPanel(new GridLayout());
panelMain.setBorder(titledBorder1);
JTextArea fieldBody = new JTextArea(5,40);
JScrollPane fieldBodyScrollPane = new JScrollPane(fieldBody);
panelMain.add(fieldBodyScrollPane);
// END: code snippet variant
JOptionPane.showMessageDialog(null, panelMain);
}
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
new CaseForLayoutsNumber547();
}
};
SwingUtilities.invokeLater(r);
}
}
我在这个SSCCE中没有看到任何滚动瑕疵。你呢?
答案 1 :(得分:2)
这是@Andrew的SSCCE展示自己;它看起来与 Ambience 或 Radiance 相同。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.1 LTS Release: 12.04 Codename: precise $ java -version java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1) OpenJDK Client VM (build 20.0-b12, mixed mode, sharing)
附录:仔细观察截图,未能遵守opacity属性会导致此类渲染工件,默认设置可能因Look&感觉实施。
答案 2 :(得分:1)
这个问题发生在OpenJDK(至少6和7;至少在Linux上),并且在Oracle Java 6和7(在Linux上)中不会发生。
mKorbel建议的解决方法适用于我:
scrollPane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
所以我猜这是OpenJDK中的一个错误。