如何获取数组中项的索引

时间:2015-12-19 03:46:42

标签: java arrays swing

我试图在JComboBox中显示用户系统上所有可用的字体系列。我有一个字符串数组如下:

String fontsList[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

这会获取用户系统上的字体,一切都很好,除非我想选择默认选择的选项,应该是'Helvetica'。

JComboBox fontsDisplay = new JComboBox(fontsList)
fontsDisplay.setSelectedIndex(**Set selected index to helvetica**);

我尝试迭代字体并将它们添加到ArrayList,但是没有方法可以在列表中获取某个字符串。有没有办法在ArrayList中获取字符串项?我正在寻找类似的东西:

fontsList.getString("Helvetica") 

它在数组fontsList中获取一个字符串元素并搜索“Helvetica”。

3 个答案:

答案 0 :(得分:4)

您可以使用indexOf()从列表中获取元素的位置。

String fontsList[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

JComboBox<String> fontsDisplay = new JComboBox<>(fontsList);
fontsDisplay.setSelectedIndex(Arrays.asList(fontsList).indexOf("Helvetica"));

答案 1 :(得分:2)

  

我想选择默认选择的选项,它应该是Helvetica。

好吧,我的可用字体系列名称列表中找不到"Helvetica"

但假设它是您系统上的有效值,那么您只需将String指定为要选择的对象:

    comboBox.setSelectedItem("Helvetica"); // which may be on your system
    //comboBox.setSelectedItem("Arial"); // which works on my system

答案 2 :(得分:1)

获取索引,并获取对象。使用getindexOf

fontsDisplay.setSelectedIndex(list.get(list.indexOf('Helvetica')));

您可能希望在此处执行一些错误检查,以便在ArrayIndexOutOfBoundsException方法返回list.indexOf时捕获经典-1,因为字体缺失。