小编nto*_*rnl的帖子

JRE错误?JTable包含某些字符串 - > ArrayIndexOutOfBoundsException

用户报告某个YouTube视频导致我们的程序失败.经过调查,似乎将包含该视频标题的String添加到JTable会导致渲染代码中的某处出现ArrayIndexOutOfBoundsException.

我们已经在Windows XP,7和8以及Ubuntu上的Java 7u45和Java 8(b121)上测试并确认了这一点.

这是一个测试程序,展示了这个问题:

import javax.swing.*;
import java.awt.*;

public class TestJTableAIOOBE {
    private static final String TEXT = "\u0D38\u0D4D\u0D31\u0D4D\u0D31\u0D40\u0D32\u0D4D\u200D \u0D15\u0D31\u0D3F\u0D15\u0D4D\u0D15\u0D24\u0D4D\u0D24\u0D3F\u0D2F\u0D3F\u0D32\u0D4D\u200D \u0D2F\u0D47\u0D36\u0D41\u0D15\u0D4D\u0D30\u0D3F\u0D38\u0D4D\u0D24\u0D41\u0D35\u0D3F\u0D28\u0D4D\u0D31\u0D46 \u0D30\u0D42\u0D2A\u0D02 \u0D2A\u0D4D\u0D30\u0D24\u0D4D\u0D2F\u0D15\u0D4D\u0D37\u0D2A\u0D4D\u0D2A\u0D46\u0D1F\u0D4D\u0D1F\u0D41";

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                Font font = findFont();
                if (font == null) {
                    System.out.println("No suitable font found");
                    return;
                }
                System.out.println("Using font: " + font);
                JTable table = new JTable(new Object[][]{{TEXT}}, new Object[]{"title"});
                table.setFont(font);
                JFrame frame = new JFrame();
                frame.add(table);
                frame.pack();
                frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
                frame.setVisible(true);
            } …
Run Code Online (Sandbox Code Playgroud)

java crash unicode swing fatal-error

5
推荐指数
1
解决办法
723
查看次数

具有默认语言环境的 String.toLowerCase() 的目的?

Java 有两个重载,分别用于 String.toLowerCase 和 toUpperCase。其中一个重载将 Locale 作为参数,而另一个重载不带参数并使用默认 locale ( Locale.getDefault())。

无参数变体可能无法按预期工作,因为大小写转换尊重国际化,并且默认语言环境取决于系统。最值得注意的是,小写的 i 被转换为大写的 ? 在土耳其语地区。

这些方法的目的是什么?无参数变体有任何合法用途吗?或者也许他们只是一个设计错误?(与默认情况下使用系统默认字符编码的几个 I/O API 不同。)

java string unicode locale case-sensitive

5
推荐指数
1
解决办法
2597
查看次数

标签 统计

java ×2

unicode ×2

case-sensitive ×1

crash ×1

fatal-error ×1

locale ×1

string ×1

swing ×1