使用了未经检查或不安全的操作
网友说什么泛类什么的不懂,请教下碰到这类问题是什么原因,我下面的代码从哪该才不会有提示。只完成了界面部分,代码如下://在JFrame元件中加入JLabel元件(字体),...
网友说什么泛类什么的不懂,请教下碰到这类问题是什么原因,我下面的代码从哪该才不会有提示。
只完成了界面部分,代码如下:
//在JFrame元件中加入JLabel元件(字体),JComboBox元件(含所有字体)
//及JPanel平盘元件,在JComboBox中选一种字体,该字体的名称
//就在JPanel以该字体显示
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FontDemo extends JFrame implements ItemListener{//下拉菜单也用ItemListener
private JLabel label1,label2;
private JComboBox comboBox;
private String fontName[];
private Container c;
public FontDemo(){
//初始化
label1=new JLabel("字体");
fontName=getFontList();
comboBox=new JComboBox(fontName);
label2=new JLabel("请选择字体");
//
c=getContentPane();
c.setLayout(new FlowLayout());
c.add(label1);
c.add(comboBox);
c.add(label2);
setBounds(200,200,200,400);
setVisible(true);
}
public String[] getFontList()
{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontList = ge.getAvailableFontFamilyNames();
//返回一个包含此 GraphicsEnvironment 中所有字体系列名称的数组
return fontList;
}
public void itemStateChanged(ItemEvent e){
}
public static void main(String args[]){
FontDemo app=new FontDemo();
app.addWindowListener(new MyWindowListener());
}
} 展开
只完成了界面部分,代码如下:
//在JFrame元件中加入JLabel元件(字体),JComboBox元件(含所有字体)
//及JPanel平盘元件,在JComboBox中选一种字体,该字体的名称
//就在JPanel以该字体显示
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FontDemo extends JFrame implements ItemListener{//下拉菜单也用ItemListener
private JLabel label1,label2;
private JComboBox comboBox;
private String fontName[];
private Container c;
public FontDemo(){
//初始化
label1=new JLabel("字体");
fontName=getFontList();
comboBox=new JComboBox(fontName);
label2=new JLabel("请选择字体");
//
c=getContentPane();
c.setLayout(new FlowLayout());
c.add(label1);
c.add(comboBox);
c.add(label2);
setBounds(200,200,200,400);
setVisible(true);
}
public String[] getFontList()
{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontList = ge.getAvailableFontFamilyNames();
//返回一个包含此 GraphicsEnvironment 中所有字体系列名称的数组
return fontList;
}
public void itemStateChanged(ItemEvent e){
}
public static void main(String args[]){
FontDemo app=new FontDemo();
app.addWindowListener(new MyWindowListener());
}
} 展开
2个回答
展开全部
首先:java中未经检查或者不安全的操作并不是错误!!!完全可以忽视,不像看到这个的话,在class定义的前面一行加上@SuppressWarnings("unchecked")
然后把,我猜是你的ArrayList这里出的问题,ArrayList相当于一个容器,jdk1.5以后再定义容器的时候要加上泛型,如果你装的是String的话,可以改成ArrayList<String> array = new ArrayList<String>();
当然了,int型的就对应改为ArrayList<Integer> array = new ArrayList<Integer>();
补充:
你用的是ArrayList<Integer> array = new ArrayList<Integer>();的话就应该add单个的Integer元素,但是你add的是一个int数组,所以应该是ArrayList<int[]> array = new ArrayList<int[]>();这是相对应的。
另外,其他几楼的说数组没初始化完全不对,数组本来就可以定义的时候赋值。
然后把,我猜是你的ArrayList这里出的问题,ArrayList相当于一个容器,jdk1.5以后再定义容器的时候要加上泛型,如果你装的是String的话,可以改成ArrayList<String> array = new ArrayList<String>();
当然了,int型的就对应改为ArrayList<Integer> array = new ArrayList<Integer>();
补充:
你用的是ArrayList<Integer> array = new ArrayList<Integer>();的话就应该add单个的Integer元素,但是你add的是一个int数组,所以应该是ArrayList<int[]> array = new ArrayList<int[]>();这是相对应的。
另外,其他几楼的说数组没初始化完全不对,数组本来就可以定义的时候赋值。
追问
大哥,谢谢你的回答,不过你这是复制粘贴的吧,我之前看过那贴了,关于ArrayListe我这程序完全没涉及,我只是想求个解决方法,而不是在clsss上加@SuppressWarnings("unchecked"), 难道我的每个代码都得加条这个,我想找的原因 要么避免,要么修改方法
展开全部
你这里没使用ArrayList之类的集合。但是JComboBox的构造方法是JComboBox()或JComboBox(Object[] o),构造时需要使用泛型,需要指定类型,假如你构造的时候加入String类数组,使用泛型:JComboBox<String> jcb = new JComboBox<String>(); 或JComboBox<String> jcb = new JComboBox<String>(new String[]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应
|
问题解决率99%
|
24小时在线
立即免费咨询律师
13224人正在获得一对一解答
广州萤火虫6分钟前提交了问题
广州萤火虫6分钟前提交了问题
南京彩虹之旅3分钟前提交了问题