我试图在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”。
答案 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)