Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中从组合框中获取整数值?_Java - Fatal编程技术网

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

如何在java中从组合框中获取整数值?,java,Java,我创建了一个名为fontlist的类,我想从组合框中获取整数值,但它给了我一些错误 如何从组合框中获取整数值?另外,我想根据进入fontsize组合框的整数值更改文本的大小 我的代码是: import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.*; class fontlist extends JFrame

我创建了一个名为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);
        }

        }
import java.awt.*;
导入javax.swing.*;
导入java.awt.event.*;
导入java.util.*;
类fontlist扩展JFrame实现ItemListener
{JComboBox jcb,fontSize;
容器内容物;
jta区;
JScrollPane-jsp;
私有静态final int[]fontsize={8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72};
字体列表()
{
content=getContentPane();
setLayout(空);
挫折地面(颜色:白色);
jcb=新的JComboBox();
content.add(jcb);
jcb.setBounds(100100,20);
fontSize=新的JComboBox();
内容。添加(字体大小);
fontSize.立根(200100100,20);
jta=新的JTextArea();
jsp=新的JScrollPane(jta);
content.add(jsp);
jsp.setBounds(100120200200);
jcb.addItemListener(本);
fontSize.addItemListener(此);
字符串字体[]=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
对于(int i=0;i
int size1 =Integer(size); 

再次查看代码后

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

也可能有效。

fontSize
声明为
JComboBox fontSize

您需要让java知道组合框包含整数
如果您查看文档,您会注意到它被声明为
JComboBox
E
是一个类型参数,它描述了JComboBox将保存的数据类型。如果您不包含它,它将默认为
对象
,您可能打算使用:

int size1 = new Integer( size );
或者您可以使用:

int size1 = Integer.parseInt( size );

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

使用IDE检查你的语法使用IDE做任何事情,IDE是很棒的,你不必这样做,但是如果你不这样做,你就必须使用它。@lordoku,但是你会破坏泛型机制的整个目的你是对的。我只是说没有硬性要求。使用泛型机制肯定是最佳实践。Also这没关系,因为即使您提供泛型类型,getSelectedItem的返回类型仍然是一个对象。尽管我认为现在首选的方法是执行JComboBox.getItemAt(JComboBox.getSelectedIndex),这将返回泛型类型。大小是一个字符串,但不能将其强制转换为整数。
int size1 = Integer.parseInt( size );