java的文件的载入(重)

1._______是嵌入式操作系统
 A.window XP
 B.DOS
 C.window 2000
 D.window CE
 ****
 2.java语言提供处理不同类型流的包是______
 A.java.sql
 B.java.util
 C.java.math
 D.java.io
 ****
 3.以下关窗口的说法错误的是_____
 A.窗口可以改变大小
 B.窗都无论何时都可以移动位置
 C.窗口都有标题栏
 D.可以再打开多个窗口间切换

 ****这些都是放在同一个文件里的,现在怎么样才能根据图里的下一个按钮,跳到此文件下一题,按上一题按钮回到上一题,用java代码怎么实现呀

答:

我的想法是这样的.
//代表选项的对象.例如代表:  A.窗口可以改变大小, B.窗都无论何时都可以移动位置
 
class Choice implements Comparable{
private char id=null; //代表可选项号(A,B,C,D)
private String context="";//代表可选项内容:例如:窗口可以改变大小
/*以id定义equals() hashcode() compareTo()方法*/
}
//代表题目对象.
class Question implements Comparable{
private int id=0;//题目的编号(例如:1, 2,3, 4, 5, 等)
private String context="";//题目的内容:例如:"以下关窗口的说法错误的是_____"
 
private Set<Choice> choices = new TreeSet<Choice>();//保存ABCD四个选项对象
private Char rightChoice=null;//每道题都要有自己的正确答案.
/*以id定义equals() hashcode() compareTo()方法*/
}
数据文件exam.dat中存放着Choice和Question 的数据.数据格式你自己定义.然后写一个DAO接口
public interface QuestionDataService{
public Set<Question> readData();
}
//DAO的一种实现(从文件读取数据)
public QuestionDataServiceFromFile implements QuestionDataService{
实现readData()方法,从exam.dat文件读数据,把数据映射成对象,放到Set中.因为防止exam.dat的数据不规范(例如题号重复等,)所以这里使用Set.保证每个题目对象都是唯一的.
}
//主要的业务逻辑类,题目服务.
class QuestionServiceImpl implements QuestionService{
private List<Question> questionList = new ArrayList<Question>();
//为了程序可以,按上一题下一题来访问列表中的"题目对象",要把Set集合转成List.因为List随机访问比较好.list.get(index);
private void convert(){
Set<Question> questionSet = new QuestionDataServiceFromFile().readData();
    for(){//Set中的元素是按题号升序的,把它们存到questionList中.
    }
}
}
//
这样GUI的事件处理器,就可以使用QuestionServiceImpl的对象遍历题目的List列表了.只要你用一个int currentQuestionID记录当前题号.就可以随意地.从List中取上一个或下一个题号了
List.get(currentQuestionID-1);//取上一个题.
List.get(currentQuestionId+1);//取下一个题.
注意在取题时要判断题号的合法性.
如果当前是第一题,或最后一题.要把对应的"下一题","上一题"按钮.禁用.
为什么要使用DAO呢?是为了万一这个程序,以后支持数据库了,你只要实现一个
public QuestionDataServiceFromDB implements QuestionDataService{}
就可以了.Swing程序,与业务逻辑所有代码都不用改.
 
 
希望对你有帮助.. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值