blankfillitem.java

来自「一个带界面的在线测试系统」· Java 代码 · 共 94 行

JAVA
94
字号
/**
 * BlankFillItem.java
 * create by ZZ, 2007.12.16
 */
package olts.application;

import javax.swing.JPanel;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.PlainDocument;
import java.awt.event.*;
import javax.swing.event.*;

/**
 * 该类描述了
 * @author ZZ
 * @version 1.0
 */
class BlankFillItem extends Item {
	
	public BlankFillItem(){
		this.setType("BlankFillItem");
	}
	/**
	 * 用一个试题来初始化这个试题
	 * @param i
	 */
	public BlankFillItem(Item i){
		
		super(i);
		this.setType("BlankFillItem");
	}
	
	/**
	 * 用具体的参数初始化试题
	 * @param i 试题Id
	 * @param d 试题难易度
	 * @param time 试题的时间期限
	 * @param c 试题的内容
	 * @param a 试题的答案
	 * @param s 试题的分值
	 */
	public BlankFillItem(int i, int d, int time, String c,
			String a, int s){
		super(i, d, time, c, a, s,"BlankFillItem");
	}
		
	/**
	 * 重写绘制答案的区域,以实现填空题自己的答题方式
	 */
	protected void drawAnswerArea(JPanel panel){
            
            panel.setLayout(new GridLayout(3,1));
            
            panel.add(new JPanel());
            
            JPanel area = new JPanel();
            
            JLabel jb = new JLabel("请在右边的方框处做答:");
            final JTextField jtf = new JTextField(7);
            
            PlainDocument doc = new PlainDocument();
            
            doc.addDocumentListener(new DocumentListener(){
                public void changedUpdate(DocumentEvent e){
                    //JOptionPane.showMessageDialog(null,jtf.getText());
                    setUserAnswer(jtf.getText());
                }
                public void insertUpdate(DocumentEvent e){
                    //JOptionPane.showMessageDialog(null,jtf.getText());
                    setUserAnswer(jtf.getText());
                }
                public void removeUpdate(DocumentEvent e){
                    //JOptionPane.showMessageDialog(null,jtf.getText());
                    setUserAnswer(jtf.getText());
                }
     
            });
            jtf.setDocument(doc);
            
            jb.setVisible(true);
            jtf.setVisible(true);
            area.setLayout(new GridLayout(1,2));
            area.add(jb);
            area.add(jtf);
            
            panel.add(area);
            
            panel.add(new JPanel());
		
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?