、私が考えてきた、...
いっそのこと、あなたはクイズを目指していた場合クイズ参加者のために配布されたファイルを開くクイズシステムの文書を作成し、それを開いてフォームに記入して(例えばPdfフォーム)回答してログインするか、自動的にログインして署名して保存するシステムに、すべての有効な/法的なテスト/クイズの文書があるかどうかを尋ねることができる文書を持っていれば、これはどうなるのだろうと思う:
モデル:
package com.emerlard.test.temp.test.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
*
* @author eddhie
*/
@Entity
public class Document implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Document)) {
return false;
}
Document other = (Document) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.emerlard.test.temp.test.model.Document[ id=" + id + " ]";
}
private String Name;
private User CreatedBy;
//todo:create a directory system/model
private Directory directory;
`
}-----
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.emerlard.test.temp.test.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
*
* @author eddie
*/
@Entity
public class QuestionDocument extends Document implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof QuestionDocument)) {
return false;
}
QuestionDocument other = (QuestionDocument) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.emerlard.test.temp.test.model.QuestionDocument[ id=" + id + " ]";
}
} /*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.emerlard.test.temp;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
/**
*
* @author eddhie
*
*/
public class JQuizFileChooser extends JFileChooser implements IJQuizFileChooser {
//todo:the event still using property change call so maybe need to be regular agent or not. but it is quite standard for this java beans
public static final String PROP_FILE_CHOOSEN_EVENT = "FileChoosenEvent";
private String FileChoosenEvent;
private PropertyChangeSupport propertySupport;
@Override
public String getFileChoosenEvent() {
return FileChoosenEvent;
}
@Override
public void setFileChoosenEvent(String value) {
String oldValue = FileChoosenEvent;
FileChoosenEvent = value;
propertySupport.firePropertyChange(PROP_FILE_CHOOSEN_EVENT, oldValue, FileChoosenEvent);
}
//todo:what to do woith mutltipel file seleantion
@Override
public void setSelectedFile(File file) {
super.setSelectedFile(file); //To change body of generated methods, choose Tools | Templates.
//todo:what aobut mamignt eh proeety hcangei envet is not sring but drectoyr fpeorty
setFileChoosenEvent("Selected File Changed , do your setting of your hander to fill the containter");
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertySupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertySupport.removePropertyChangeListener(listener);
}
public JQuizFileChooser() {
propertySupport = new PropertyChangeSupport(this);
this.setFileFilter(new FileNameExtensionFilter("Text File", "txt"));
}
}
そしてTHA tcompoentへのインタフェース
package com.emerlard.test.temp;
/**
*
* @author eddhie
*/
public interface IJQuizFileChooser {
String getFileChoosenEvent();
void setFileChoosenEvent(String value);
}
Seee:あなたはJquisFileCooserのcompojnetを関連付けることができます。ここ
(使用して、注射のために、例えばインタフェースをincude春など。その後
(缶は、プロパティinectionの利用Beanをjsutことができます)
あなたのメインのコード
@autowire
IQuizFileChooser
これは、その後、あなたがキャッチすることができます。このファイルチューザの内容を結果や
を処理しますメインコードにファイルのイベントが表示されます。
private void newBean11PropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_newBean11PropertyChange
// TODO add your handling code here:
}//GEN-LAST:event_newBean11PropertyChange
あなただけ接続し、あなたのイベントへのEVTの特派
そして
内の表示のための容器を満たすあなたが適切なID名
で適切なディレクトリに書き込みをいくつかしてFileWriterを使用し、次に保存を
簡単アプリケーションモデルのモデルの記録
GOTIT?
はSO結局、あなたはちょうど約すべてこの
@autowire Iquizzfilechooser
@autowireが必要 Containner //あなたはあなたがどこに行きたいかに応じてすぐに実行することができ これをしたいと場合もし他のものが注射されている、またはあなたが他のものを追加したいのであれば、あなた次第です
cool right?
部分文字列を使用できます。これはCですよね?それはそれがどのように見えるかです。私はCで文字列インデックスを使うことができると思います。 'str [0:4]' –