Aide à lire-开源

  • n2_805361
    了解作者
  • 5.7MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-16 11:07
    上传日期
阅读工具。 测量阅读效率,阅读速度,阅读理解力。 发展阅读流利度。 以单词,句子,段落为一组的流畅阅读。
Lecture.zip
  • Lecture
  • presentation
  • windows
  • FenetreAffichage.class
    675B
  • FenetreAffichage.java
    825B
  • presentations
  • PresentationMultiLine.java
    4.4KB
  • PresentationRollUpAvecControleAutomatique$1.class
    8.1KB
  • PresentationRollUpAvecControleManuel.class
    2.6KB
  • PresentationRollUpAvecControleAutomatique.class
    3.6KB
  • PresentationMultiLine$1.class
    3.4KB
  • PresentationRollUp.java
    7.9KB
  • PresentationDemo$1.class
    5.4KB
  • PresentationRollUp$1.class
    4.6KB
  • PresentationRollUpAvecControleAutomatique.java
    12.4KB
  • Presentation.class
    961B
  • PresentationNormale.class
    2.8KB
  • PresentationScroll.class
    2.9KB
  • PresentationMultiLine.class
    2.8KB
  • PresentationNormale.java
    6.6KB
  • PresentationDemo.java
    8.4KB
  • PresentationScroll.java
    5.5KB
  • PresentationRollUp.class
    3KB
  • PresentationNormaleVitesseManuelle.java
    6.6KB
  • PresentationRollUpAvecControleManuel$1.class
    5.4KB
  • PresentationNormaleVitesseManuelle$1.class
    4.4KB
  • PresentationRollUpAvecControleManuel.java
    7.4KB
  • PresentationNormale$1.class
    4.3KB
  • PresentationScroll$1.class
    4KB
  • PresentationDemo.class
    3KB
  • PresentationNormaleVitesseManuelle.class
    3.1KB
  • Presentation.java
    1.6KB
  • zoneaffichage
  • ZoneAffichage.class
    429B
  • ZoneAffichage.java
    1.6KB
  • ZoneAffichageVitesseModifiable.java
    617B
  • ZoneAffichageVitesseModifiable.class
    751B
  • util
  • ControlePI.java
    870B
  • ControleurVitesseSouris.class
    1.6KB
  • TableMotsSignificatifs.java
    2.6KB
  • ControlePI.class
    827B
  • ControlePID.java
    1.6KB
  • ControlePID.class
    1.1KB
  • ControleurVitesseSouris.java
    1.3KB
  • PositionDeMot.java
    313B
  • PositionDeMot.class
    625B
  • EtatPresentation.java
    1.4KB
  • TableMotsSignificatifs.class
    2.5KB
  • ControleurVitesse.class
    620B
  • EtatPresentation.class
    1.7KB
  • ControleurVitesse.java
    431B
  • HandlerPresentation.class
    2.1KB
  • HandlerPresentation.java
    2.5KB
  • .#HandlerPresentation.java.1.12
    4KB
  • donnees
  • GenerateurTexte.java
    2.2KB
  • MotDescr.class
    440B
  • Mot.java
    3.2KB
  • Mot.class
    2.6KB
  • MotDescr.java
    412B
  • GenerateurTexte.class
    2.4KB
  • textes
  • ImpressionsDunCoureur
    1.9KB
  • MonJardinMerveilleux
    1.2KB
  • UneBoutiqueDeCampagne
    1003B
  • gabarit
    157B
  • vpproject
  • diagrams
  • D俶arrer une pr俿entation.vpseqd
    140B
  • Objets.vpcrcd
    140B
  • Couches syst妋e.vppackd
    140B
  • Diagramme principal.vpclassd
    140B
  • SSD.vpseqd
    140B
  • Domaine.vpobjd
    140B
  • Cas d'utilisation.vpucd
    140B
  • Contrats.vpcrcd
    140B
  • Entity Relationship Diagram1.vperd
    140B
  • Communication Diagram1.vpcold
    140B
  • Aide à la lecture.vpp
    352.4KB
  • util
  • Application$1.class
    1.3KB
  • Application.class
    2.3KB
  • Application.java
    2.9KB
  • .#AfficheurDenisBernard.java.1.1
    1.8KB
  • .settings
  • org.eclipse.jdt.core.prefs
    629B
  • test
  • donnees
  • MotsTest.class
    7.1KB
  • GenerateurTexteTest.java
    3.6KB
  • GenerateurTexteTest.class
    3.6KB
  • MotsTest.java
    8.5KB
  • iu
  • CtrlIU$1.class
    763B
  • MouseEventCtrl.java
    1.2KB
  • MouseEventCtrl.class
    881B
  • CtrlIU.class
    2.4KB
  • MainWindow.class
    7KB
  • MainWindow.java
    8.3KB
内容介绍
package presentation.presentations; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.util.LinkedList; import java.util.NoSuchElementException; import java.util.Observable; import java.util.StringTokenizer; import javax.swing.JPanel; import presentation.util.ControlePID; import presentation.util.EtatPresentation; import presentation.util.PositionDeMot; import presentation.util.TableMotsSignificatifs; import presentation.windows.FenetreAffichage; import presentation.zoneaffichage.ZoneAffichageVitesseModifiable; /** * * Description de la présentation : * * Zone d'affichage unique rectangulaire dans la zone inférieure de l'écran. * Respecte les normes d'affichage canadiennes (RQST). * * @author Vincent de Grandpré */ public class PresentationRollUpAvecControleAutomatique extends Presentation{ private boolean active = true; public PresentationRollUpAvecControleAutomatique(String s, FenetreAffichage p){ active = false; texte = s; texte = texte.replaceAll("\n"," "); za.setText(texte); za.init(); addObserver(za); JPanel jp = new JPanel(); jp.add(za); jp.setBackground(p.COULEUR_FOND); jp.setSize(p.getSize()); p.add(jp); impl.add(p); } private ZoneAffichageVitesseModifiable za = new ZoneAffichageVitesseModifiable(){ /* * Thread de défilment */ private Thread t = null; /* * Table des mots significatifs */ private TableMotsSignificatifs motsSignificatifs = new TableMotsSignificatifs(); /* * position d'un mot significatif dans le temps (variable) */ private int posMotSignificatif = 0; /* * Position courante dans le texte */ private int positionTexte = 0; /* * Taille du décalage empirique en caractères */ private int DECALAGE_EMPIRIQUE = 35; /* * Longueur minimale d'un mot significatif */ private final int LONGUEUR_MOT_SIGNIFICATIF = 4; /* * Décalage inter-ligne pour le multi-ligne. */ private final int OFFSET = 45; /* * Position du texte dans la zone d'affichage */ private int POSITION_TEXTE = 0; /* * Taille du texte */ private final int TAILLE_TEXTE = 40; /* * Nombre de lignes de texte à afficher */ private int NB_LIGNES = 3; /* * Définition des bornes de la zone d'affichage. * C'est clairement la zone d'affichage et son positionnement * dans l'écran. */ private final int BORNE_X = 0; private final int BORNE_Y = 0; private final int BORNE_LARGEUR = 1300; private final int BORNE_HAUTEUR = NB_LIGNES * (OFFSET+TAILLE_TEXTE); /* * Couleur du texte */ private final Color COULEUR_TEXTE = Color.YELLOW; // Le texte tel quel private String texte = ""; // Le texte formatté (avec les \n) private String texteFormat = ""; // Le texte en format multiligne (une case = une ligne) private String [] multiLignes = new String[NB_LIGNES]; // La dernière chaîne reconnue private String derniereChaineReconnue = ""; // Index de la ligne actuelle private int curLigne = 0; // Buffer de caractères reçus private LinkedList buffer = new LinkedList(); // Longueur possible de la ligne private final int LONGUEUR_LIGNE = BORNE_LARGEUR / (TAILLE_TEXTE/2); /** * Initialise une zone d'Affichage. * Point d'entrée public vers la zone d'affichage. */ public void init(){ EtatPresentation.getInstance().setCouleurPolice(Color.YELLOW); EtatPresentation.getInstance().setPolice( new Font("Arial",Font.BOLD,TAILLE_TEXTE)); DELAI = 300; setBounds(BORNE_X,BORNE_Y,BORNE_LARGEUR,BORNE_HAUTEUR); /* * IMPORTANT : ON SUPPOSE QUE LE TEXTE COMPLET (variable texte) A DÉJÀ ÉTÉ DÉFINI */ calculerMotsSignificatifs(); for(int i=0; i<multiLignes.length; i++){ multiLignes[i] = ""; } } /** * Modifie le texte en cours */ public void setText(String s) { if(texte.equals("")){ texte = s; } char[] tabS = s.toCharArray(); for(int i=0; i<tabS.length; i++){ buffer.addFirst(tabS[i]); } buffer.addFirst(' '); //this.derniereChaineReconnue = s; } /** * Permet le défilement de texte. */ public void run() { /** * ALGO ALIGNEMENT AUTOMATIQUE SUR TEXTE CONNU. * * 1. Séparer le texte par mots clés significatifs aisément reconnus * 2. Notion de vitesse d'affichage moyenne * 3. Si le mot clé reconnu est avant le mot clé dans le texte, on calcule * une nouvelle vitesse moyenne pour ralentir l'affichage. * Si le mot clé reconnu est après le mot clé dans le texte, on calcule * une nouvelle vitesse moyenne pour accélérer l'affichage. */ String chunk; int tic = 0; // Tant que la présentation est active while(EtatPresentation.getInstance().getEtat() != EtatPresentation.ETAT_ARRET){ // Tant qu'il y a quelquechose dans le buffer try{ while(buffer.getLast() != null){ if(EtatPresentation.getInstance().getEtat() == EtatPresentation.ETAT_DEMARRE){ chunk = ""; try { Thread.sleep(DELAI); } catch (InterruptedException e) { e.printStackTrace(); } /* * Si le texte de la ligne courante contiens un caractère * de ponctuation. */ if(multiLignes[curLigne].contains("?") || multiLignes[curLigne].contains("!") || multiLignes[curLigne].contains(".")){ EtatPresentation.getInstance().setEtat( EtatPresentation.ETAT_PAUSE); if(curLigne < NB_LIGNES - 1){ curLigne++; }else{ defiler(); // Interversion des premières lignes multiLignes[0]=multiLignes[1]; multiLignes[1]=multiLignes[2]; multiLignes[2]=""; } } /* * Récupère un chunk. */ String s = buffer.removeLast().toString().trim(); while(!s.equals(" ")){ positionTexte += s.length(); chunk += s; s = buffer.removeLast().toString(); if(s.contains("\n")){ positionTexte++; } } chunk += " "; positionTexte++; // Saut de ligne automatique sur la détection de certains caractères. if(multiLignes[curLigne].length() + chunk.length() > LONGUEUR_LIGNE){ int x = calculerDernierEspace( chunk,multiLignes[curLigne].length(), LONGUEUR_LIGNE - 10); multiLignes[curLigne] += chunk.substring(0,x); // Si on doit défiler pour afficher la fin du chunk if(curLigne >= NB_LIGNES-1){ curLigne = NB_LIGNES-1; // Défilement defiler(); // Interversion des premières lignes multiLignes[0]=multiLignes[1]; multiLignes[1]=multiLignes[2]; multiLignes[2]=chunk.substring(x); }else{ multiLignes[++curLigne] = chunk.substring(x); } }else{ multiLignes[curLigne] += chunk; } /* * Contrôle de la vitesse à chaque 2 coups d'horloge. */ repaint(); } } }catch(NoSuchElementException e){ } } } /** * Enregistre les mots significatifs et leur position (StringDelimiter) * dans une structure de données. */ private void calculerMotsSignificatifs(){ /* * Récupère chaque mots du texte */ StringTokenizer stk = new StringTokenizer(texte, " ")
评论
    相关推荐
    • FreeMaker IDE
      FreeMarker的Eclipse插件,可以高亮显示FTL标签,提示语法错误,以及智能提示!
    • selenium ide
      selenium ide下载,fire path
    • IDE设置
      IDE设置
    • FreeMaker IDE
      FreeMaker IDE FreeMaker IDE
    • silabs ide
      用于调试51F023的软件 可以与CE3配套使用
    • ide
      ide
    • ide
      ide
    • IDE Factory
      【名称】IDE Factory 【作用】Flex Builder的AS3开发插件,主要用于生成Geter and Setter 、Format code...etc 【版本】Beta2 1.05(2008.12.20 最新) 【官网】开代理访问 www.idefactory.com 【已知Bug】 根据...
    • SiLabs IDE
      新华龙公司特别为C8051系列开发的编译软件IDE,界面很直观,非常好用!
    • Perl IDE
      一个Perl的程序设计器。