有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中从组合框中获取整数值?

我创建了一个名为fontlist的类,我想从组合框中获取整数值,但它给了我一些错误

如何从组合框中获取整数值?另外,我想根据进入fontsize组合框的整数值更改文本的大小

我的代码是:

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

        class fontlist extends JFrame implements ItemListener
        { JComboBox jcb,fontSize;
        Container content;
        JTextArea jta;
        JScrollPane jsp;
        private static final int[] fontsize = {8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72};

        fontlist()
        {
        content=getContentPane();
        setLayout(null);
        setBackground(Color.WHITE);
        jcb=new JComboBox();
        content.add(jcb);
        jcb.setBounds(100,100,100,20);

        fontSize=new JComboBox();
        content.add(fontSize);
        fontSize.setBounds(200,100,100,20);
        jta=new JTextArea();
        jsp=new JScrollPane(jta);
        content.add(jsp);
        jsp.setBounds(100,120,200,200);
        jcb.addItemListener(this);
        fontSize.addItemListener(this);
        String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
        for ( int i = 0; i < fonts.length; i++ )
        {
        jcb.addItem(fonts[i]);
        } 
        for ( int j = 0; j <16; j++ )
        {
        fontSize.addItem(fontsize[j]);
        } 
        }
        public void itemStateChanged(ItemEvent ie)
        {
        if (ie.getStateChange() == ItemEvent.SELECTED) 
        {
        System.out.println(""+fontSize.getSelectedItem());
          String size = (fontSize.getSelectedItem()+"");
         System.out.println(size);
         int size1 =Integer(size);
        }
        }
        public static void main(String args[])
        {
        fontlist fl=new fontlist();
        fl.setSize(700,500);
        fl.setVisible(true);
        }

        }

错误是:

enter image description here


共 (3) 个答案

  1. # 1 楼答案

    声明fontSizeJComboBox<Integer> fontSize

    您需要让java知道组合框包含整数 如果查看JComboBox的文档,您会注意到它被声明为JComboBox<E>E是一个类型参数,描述JComboBox将保存的数据类型。如果不包含它,它将默认为Object

  2. # 2 楼答案

    改变

    int size1 =Integer(size); 
    

    int size1 = Integer.parseInt(size);
    

    再次查看代码后

    int size1 = (Integer)(fontSize.getSelectedItem());
    

    可能也有用

  3. # 3 楼答案

    你可能想用:

    int size1 = new Integer( size );
    

    或者你可以使用:

    int size1 = Integer.parseInt( size );
    

    (两者都需要使用try/catch块来捕获NumberFormatException