初学JAVA下拉列表框,有些问题求指教。下面是代码。谢谢
packagecom.lzw;importjava.awt.*;importjavax.swing.*;publicclassJComboBoxModelTestexte...
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class JComboBoxModelTest extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JComboBox<String> jc = new JComboBox<String>(new MyComboBox()); //创建下拉列表框
JLabel jl = new JLabel("请选择证件:");
public JComboBoxModelTest() {
setSize(new Dimension(160, 180));
setVisible(true);
setTitle("在窗口中设置下拉列表框");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(jl);
cp.add(jc);
}
public static void main(String[] args) {
new JComboBoxModelTest();
}
}
class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String> {
/**
*
*/
private static final long serialVersionUID = 1L;
String selecteditem = null;
String[] test = { "身份证", "军人证", "学生证", "工作证" };
public String getElementAt(int index) { //根据索引返回值
return test[index];
}
public int getSize() { //返回下拉列表框中项目的数目
return test.length;
}
public void setSelectedItem(Object item) { //设置下拉列表框项目
selecteditem = (String) item;
}
public Object getSelectedItem() { //获取下拉列表项目
return selecteditem;
}
/*
public int getIndex() {
for (int i = 0; i < test.length; i++) {
if (test[i].equals(getSelectedItem()))
return i;
}
return 0;
}*/
}
问题1.为什么根据索引返回值和获取下拉列表框中的项目返回值是Object。问题2,最后我给注释起来的getIndex()方法有用么? 展开
import java.awt.*;
import javax.swing.*;
public class JComboBoxModelTest extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JComboBox<String> jc = new JComboBox<String>(new MyComboBox()); //创建下拉列表框
JLabel jl = new JLabel("请选择证件:");
public JComboBoxModelTest() {
setSize(new Dimension(160, 180));
setVisible(true);
setTitle("在窗口中设置下拉列表框");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(jl);
cp.add(jc);
}
public static void main(String[] args) {
new JComboBoxModelTest();
}
}
class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String> {
/**
*
*/
private static final long serialVersionUID = 1L;
String selecteditem = null;
String[] test = { "身份证", "军人证", "学生证", "工作证" };
public String getElementAt(int index) { //根据索引返回值
return test[index];
}
public int getSize() { //返回下拉列表框中项目的数目
return test.length;
}
public void setSelectedItem(Object item) { //设置下拉列表框项目
selecteditem = (String) item;
}
public Object getSelectedItem() { //获取下拉列表项目
return selecteditem;
}
/*
public int getIndex() {
for (int i = 0; i < test.length; i++) {
if (test[i].equals(getSelectedItem()))
return i;
}
return 0;
}*/
}
问题1.为什么根据索引返回值和获取下拉列表框中的项目返回值是Object。问题2,最后我给注释起来的getIndex()方法有用么? 展开
2个回答
2014-12-29
展开全部
多练,去卡api,查看源代码,下次你再问JRadioButton什么的,又要问了,再看JTable又要问了,看JTree,又要问了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、API里面返回的就是Object 如果想用可以强制类型转换,第二 使用泛型来避免以下冲突2、 获取被选择的第一个ITEM的index
追问
第2个问题我给注释起来根本没任何影响啊。还有1个问题是书上说在初始化JComboBox对象时向上转型为ComboBoxModel接口类型。在哪里向上转型了?
追答
向上转型就是父类对象指向子类对象的引用 向下转型就是强制类型转换 自己好好体会下
ComboBoxModel a = new JComboBox()这就是向上转型
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询