关于JList的一些方法调用

Gzd2003 2010-05-17 10:43:54
存在以下程序:
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JList;
class DemoFrame extends JFrame
{
public DemoFrame()
{
Container c=getContentPane();
String sports[]={"足球","排球","乒乓球","篮球"};
JList li=new JList(sports);
li.setVisibleRowCount(3);

c.add(li);

li.remove(0);
li.removeAll();
}
}
public class Example6_3_2
{

public static void main(String[] args)
{
DemoFrame f=new DemoFrame();
f.setVisible(true);
f.pack();


}

}
为什么
li.setVisibleRowCount(3);--------》我预期效果是在JList中只能有3个显示,但是4个选项还是同时显示。
li.remove(0);--------》删除不了第一个选项
li.removeAll();--------》一个都没有删除
这三句为什么不能达到效果呢?
谢谢。我用的JDK是1.6的。
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
奔跑哥 2010-05-18
  • 打赏
  • 举报
回复
看看我写的,是如何构建JList的,以及如何来删除某个item的。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class TestList extends JFrame {

private JPanel jContentPane = null;
private JScrollPane jScrollPane = null;
private JList viewtable = null;
private JButton jButton = null;
// 建立一个模型,之后的表将在建立在模型下,或者说是以模型为一个基本模板;
DefaultListModel dtm = null;


/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/

// 使用JTABLE ON JSCROLLPANE控件;
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new java.awt.Rectangle(40, 40, 650, 200));
jScrollPane.setViewportView(getViewtable());
}
return jScrollPane;
}

/**
* This method initializes viewtable
*
* @return javax.swing.JTable
*/
// 初始化表;
private JList getViewtable() {
if (viewtable == null) {
viewtable = new JList();

dtm = new DefaultListModel();
dtm.addElement("hello");
dtm.addElement("zhtsuc");
dtm.addElement("zhtsuc_second");
// 用模型建立表;
viewtable = new JList(dtm);
}
return viewtable;
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("del");
jButton.setBounds(new java.awt.Rectangle(289, 316, 165, 28));

jButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
int numrow = viewtable.getSelectedValues().length;
Object[] objs = viewtable.getSelectedValues();
for (int i = 0; i < numrow; i++) {
dtm.removeElement(objs[i]);
}

}
});
}
return jButton;
}

/**
* @param args
*/
public static void main(String[] args) {
TestList test = new TestList();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setVisible(true);

}

/**
* This is the default constructor
*/
public TestList() {
super();
initialize();

}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(772, 500);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getJButton(), null);
}
return jContentPane;
}

}
lzsxf11 2010-05-18
  • 打赏
  • 举报
回复
DefaultListModel model=new DefaultListModel();
JList jList1 = new JList(model);
model.addElement("足球");”
通过DefaultListModel 来进行增添删除
Gzd2003 2010-05-18
  • 打赏
  • 举报
回复
顶呀。
neozhengx 2010-05-17
  • 打赏
  • 举报
回复
setVisibleRowCount(3) 好像是指定了JScrollPane才有效果,但我不确定了。。
neozhengx 2010-05-17
  • 打赏
  • 举报
回复
JList好像是MVC型的组件吧,增加删除什么的必须通过其ListModel来增加和删除
Java调用Zip类批量压缩多个文件,此前有一个是压缩单个文件,也可参考,相关代码中可找到此源码。   public class ZipDemo extends JFrame{   JFileChooser fileChooser; //文件选择器   JList fileList; //待压缩的文件列表   Vector files; //文件数据(待压缩文件)   JButton jbAdd; //增加文件按钮   JButton jbDelete; //删除文件按钮   JButton jbZip; //压缩按钮   JTextField target; //目标文件文本域   public ZipDemo(){   super("用ZIP压缩多个文件"); //调用父类构造函数   fileChooser=new JFileChooser(); //实例化文件选择器   files=new Vector(); //实例化文件数据Vector   fileList=new JList(files); //实例化已选择文件列表   jbAdd=new JButton("增加"); //实例化按钮组件   jbDelete=new JButton("删除");   jbZip=new JButton("压缩");   target=new JTextField(18);   JPanel panel=new JPanel(); //实例化面板,用于容纳按钮   panel.add(jbAdd); //增加组件到面板上   panel.add(jbDelete);   panel.add(jbZip);   JPanel panel2=new JPanel();   panel2.add(new JLabel("目标文件"));   panel2.add(target);   JScrollPane jsp=new JScrollPane(fileList);   Container container=getContentPane(); //得到容器   container.add(panel2,BorderLayout.NORTH); //增加组件到容器   container.add(jsp,BorderLayout.CENTER);   container.add(panel,BorderLayout.SOUTH);   jsp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); //设置边界
第一章 流与文件 1.1 流 1.1.1 读入和写出字节 1.1.2 完整的流家族 1.1.3 组合流过滤器 1.2 文本输入与输出 1.2.1 如何写出文本输出 1.2.2 如何读入文本输入 1.2.3 以文本格式存储对象 1.2.4 字符集 1.3 读入和写出二进制数据 1.3.1 随机访问文件 1.4 ZIP文档 1.5 对象流与序列化 1.5.1 理解对象序列化的文件格式 1.5.2 修改缺省的序列化机制 1.5.3 序列化单例和类型安全的枚举 1.5.4 版本管理 1.5.5 为克隆使用序列化 1.6 文件管理 1.7 新I/O 1.7.1 内存映射文件 1.7.2 缓冲区数据结构 1.7.3 文件加锁机制 1.8 正则表达式 第十二章 XML 2.1 XML概述 2.1.1 XML文档的结构 2.2 解析XML文档 2.3 验证XML文档 2.3.1 文档类型定义 2.3.2 XML Schema 2.3.3 实用示例 2.4 使用XPath来定位信息 2.5 使用名字空间 2.6 流机制解析器 2.6.1 使用SAX解析器 2.6.2 使用StAX解析器 2.7 生成XML文档 2.7.1 使用StAX写出XML文档 2.8 XSL转换 第三章 网络 3.1 连接到服务器 3.1.1 套接字超时 3.1.2 因特网地址 3.2 实现服务器 3.2.1 为多个客户端服务 3.2.2 半关闭 3.3 可中断套接字 3.4 发送E-Mail 3.5 建立URL连接 3.5.1 URL和URI 3.5.2 使用URLConnection获取信息 3.5.3 提交表单数据 第四章 数据库编程 4.1 JDBC的设计 4.1.1 JDBC驱动程序类型 4.1.2 JDBC的典型用法 4.2 结构化查询语言 4.3 JDBC配置 4.3.1 数据库URL 4.3.2 驱动程序JAR文件 4.3.3 启动数据库 4.3.4 注册驱动器类 4.3.5 连接到数据库 4.4 执行SQL语句 4.4.1 管理连接、语句和结果集 4.4.2 分析SQL异常 4.4.3 组装数据库 4.5 执行查询操作 4.5.1 预备语句 4.5.2 读取和写出LOB 4.5.3 SQL转义 4.5.4 多结果集 4.5.5 获取自动生成键 4.6 可滚动和可更新的结果集 4.6.1 可滚动的结果集 4.6.2 可更新的结果集 4.7 行集 4.7.1 被缓存的行集 4.8 元数据 4.9 事务 4.9.1 保存点 4.9.2 批量更新 4.9.3 高级SQL类型 4.10 Web与企业应用中的连接管理 4.11 LDAP介绍 4.11.1 配置LDAP服务器 4.11.2 访问LDAP目录信息 第五章 国际化 5.1 Locales 5.2 数字格式 5.2.1 货币 5.3 日期和时间 5.4 排序 5.4.1 排序强度 5.4.2 分解 10.5 消息格式化 10.5.1 选择格式 10.6 文本文件和字符集 10.6.1 源文件的字符编码 10.7 资源包 10.7.1 定位资源包 10.7.2 属性文件 10.7.3 包类 10.8 一个完整的例子 第六章 高级Swing 6.1 列表 6.1.1 JList构件 6.1.2 列表模式 6.1.3 插入和移除值 6.1.4 值的绘制 6.2 表格 6.2.1 简单表格 6.2.2 表格模型 6.2.3对行和列的操作 6.3 树 6.3.1 简单的树 6.3.2 结点枚举 6.2.3 绘制结点 6.2.4 监听树事件 6.2.5 定制树模型 6.4 文本构件 6.4.1 文本构件中的修改跟踪 6.4.2 格式化的输入框 6.4.3 JSpinner构件 6.4.4 用JEditorPane显示HTML 6.5 进度指示器 6.5.1 进度条 6.5.2 进度监视器 6.5.3 监视输入流的进度 6.6 构件组织器 6.6.1 分割面板 6.6.2 选项卡面板 6.6.3 桌面面板和内部框体 6.6.4 级联与平铺 6.6.5 否决属性设置 第七章 高级 AWT 7.1 绘图操作流程 7.2 形状 7.2.1 使用形状类 7.3 区域 7.4 笔划 7.5 着色 7.6 坐标变换 7.7 剪切 7.8 透明与组合 7.9 绘图提示 7.10 图像的读取器和写入器 7.10.1 获得图像文件类型的读取器和写入器 7.10.2 读取和写入带有多个图像的文件 7.11 图像处理 7.11.1 构建光栅图像 7.11.2 图像过滤 7.12 打印 7.12.1 图形打印 7.12.2 打印多页文件 7.12.3 打印预览 7.12.4 打印服务程序 7.12.5 流打印服务程序 7.12.6 打印属性 7.13 剪贴板 7.13.1 数据传递的类和接口 7.13.2 传递文本 7.13.3 可传递的接口和数据风格 7.13.4 构建一个可传递的图像 7.13.5 通过系统剪贴板传递Java对象 7.13.6 使用本地剪贴板来传递对象引用 7.14 拖放操作 7.14.1 Swing对数据传递的支持 7.14.2 拖曳源 7.14.3 放置目标 7.15 平台集成 7.15.1 闪屏 7.15.2 启动桌面应用程序 7.15.3 系统托盘 第八章 JavaBean构件 8.1 为何是Bean? 8.2 编写Bean的过程 8.3 使用Bean构造应用程序 8.3.1 将Bean打包成JAR文件 8.3.2 在开发环境中组合Bean 8.4 Bean属性与事件的命名模式 8.5 Bean属性的类型 8.5.1 简单属性 8.5.2 索引属性 8.5.3 绑定属性 8.5.4 约束属性 8.6 BeanInfo类 8.7 属性编辑器 8.7.1 编写一个属性编辑器 8.8 定制器 8.8.1 编写一个定制器类 8.9 JavaBean持久化 8.9.1 JavaBean持久化可用于任何数据 8.9.2 一个JavaBean持久化的完整示例 第九章 安全 9.1 类加载器 9.1.1 类加载器的层次结构 9.1.2 将类加载器作为命名空间 9.1.3 编写你自己的类加载器 9.2 字节码校验 9.3 安全管理器与访问权限 9.3.1 Java 平台安全性 9.3.2 安全策略文件 9.3.3 定制权限 9.3.4 实现权限类 9.4 用户认证 9.4.1 JAAS 登录模块 9.5 数字签名 9.5.1 消息摘要 9.5.2 消息签名 9.5.3 X.509证书格式 9.5.4 校验签名 9.5.5 认证问题 9.5.6 证书签名 9.5.7 证书请求 9.6 代码签名 9.6.1 JAR文件签名 9.6.2 软件开发者证书 9.7 加密 9.7.1 对称密码 9.7.2 密钥生成 9.7.3 密码流 9.7.4 公共密钥密码 第十章 分布式对象 10.1 客户与服务器的角色 10.2 远程方法调用 10.2.1 存根与参数编组 10.3 配置远程方法调用 10.3.1 接口与实现 10.3.2 RMI注册表 10.3.3 部署程序 10.3.4 记录RMI活动 10.4 远程方法中的参数和返回值 10.4.1 传递远程对象 10.4.2 传递非远程对象 10.4.3 动态类加载 10.4.4 具有多重接口的远程引用 10.4.5 远程对象与equals、hashCode和clone方法 10.5 远程对象激活 10.6 Web Services与JAX-WS 10.6.1 使用JAX-WS 10.6.2 Web服务的客户端 10.6.3 Amazon的E-Commerce服务 第十一章 脚本、编译与注解处理 11.1 Java平台的脚本 11.1.1 获取脚本引擎 11.1.2 脚本赋值与绑定 11.1.3 重定向输入和输出 11.1.4 调用脚本的函数和方法 11.1.5 编译脚本 11.1.6 一个示例:用脚本处理GUI事件 11.2 编译器API 11.2.1 编译便捷之法 11.2.2 使用编译工具 11.2.3 一个示例:动态Java代码生成 11.3 使用注解 11.3.1 一个示例:注解事件处理器 11.4 注解语法 11.5 标准注解 11.5.1 用于编译的注解 11.5.2 用于管理资源的注解 11.5.3 元注解 11.6 源码级注解处理 11.7 字节码工程 11.7.1 载入时修改字节码 第十二章 本地方法 12.1 从Java程序中调用C函数 12.2 数值参数与返回值 12.2.1 用printf格式化数字 12.3 字符串参数 12.4 访问对象域 12.4.1 访问实例域 12.4.2 访问静态域 12.5 编码签名 12.6 调用Java方法 12.6.1 实例方法 12.6.2 静态方法 12.6.3 构造器 12.6.4 替代方法调用 12.7 访问数组元素 12.8 错误处理 12.9 使用调用API 12.10 完整的示例:访问Windows注册表 12.10.1 Windows注册表概述 12.10.2 访问注册表的Java平台接口 12.10.3 以本地方法方式实现注册表访问函数
Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释执行命令的使用10 1.2.5UltraEdit的使用11 1.3一个简单的Java应用程序14 1.4一个简单的Java小程序16 1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型数据29 2.3.6字符型数据30 2.3.7布尔型数据32 2.3.8变量赋初值33 2.3.9变量的作用域34 2.3.10数据类型转换34 2.4运算符与表达式37 2.4.1算术运算符和算术表达式38 2.4.2关系运算符和关系表达式43 2.4.3逻辑运算符和逻辑表达式44 2.4.4条件运算符和条件表达式48 2.4.5位运算符和位运算表达式50 2.4.6赋值运算符和赋值表达式53 2.4.7表达式的求值顺序55 2.5流程控制语句58 2.5.1三种基本控制结构58 2.5.2表达式语句和空语句59 2.5.3块语句60 2.5.4if~else分支语句61 2.5.5多路分支switch~case语句69 2.5.6当型循环while语句71 2.5.7直到型循环do~while语句72 2.5.8当型循环for语句74 2.5.9循环的嵌套78 2.5.10跳转语句break80 2.5.11跳转语句continue82 2.6程序文本的风格84 2.6.1注释84 2.6.2程序的格式编排87 2.7基础语法实战演习88 2.7.1判断闰年88 2.7.2求最大公约数和最小公倍数89 2.7.3Fibonacci数列90 2.7.4逆向输出数字91 2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本特征101 3.2类与对象104 3.2.1类的基本结构104 3.2.2类的声明104 3.2.3创建类体105 3.2.4对象的生命周期106 3.2.5对象的创建106 3.2.6对象的使用108 3.2.7对象的释放和垃圾收集机制108 3.3成员变量的定义与使用109 3.3.1成员变量的定义109 3.3.2成员变量的访问权限110 3.3.3实例成员变量和静态成员变量114 3.4方法的定义和实现116 3.4.1方法的声明117 3.4.2创建方法体与return语句117 3.4.3局部变量和成员变量的区别119 3.4.4方法的访问权限121 3.5方法调用121 3.5.1方法调用的形式121 3.5.2方法调用的参数123 3.5.3隐含参数this127 3.6构造方法128 3.6.1无参数构造方法的定义和使用129 3.6.2带参数构造方法的定义和使用131 3.6.3this关键字和构造方法调用132 3.7静态方法133 3.7.1静态方法的声明和定义134 3.7.2静态方法和实例方法的区别134 3.7.3静态代码块136 3.7.4再论静态成员变量137 3.8main()方法和命令行参数139 3.9结束方法141 3.10本地方法141 3.11本章小结144 第4章继承与多态145 4.1继承的基本原理145 4.2子类对父类的继承146 4.3属性隐藏和方法的覆盖148 4.3.1属性的隐藏148 4.3.2方法的覆盖151 4.4构造方法的继承154 4.5super的使用156 4.5.1用super引用父类的成员156 4.5.2使用super调用父类的构造方法157 4.6继承的内部处理158 4.7多态的基本概念159 4.8重载159 4.8.1普通方法的重载160 4.8.2构造方法的重载161 4.8.3重载的解析163 4.8.4重载与覆盖的区别165 4.9运行时多态165 4.9.1实例方法的运行时多态165 4.9.2成员变量运行时的表现167 4.9.3静态方法运行时

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧