私は、ユーザーからファブリックの名前とキーのタイプを読み取る必要があります。私は、StringファブリックとキーのタイプのListを持つクラス "article"を定義しました。新しいタイプを追加する必要がある場合は問題ありませんが、新しいファブリックを追加する必要がある場合は、そのファブリックの新しい名前が以前のものに変更されます。oldersに影響を与えずに新しい静的パラメータを追加するにはどうすればいいですか?
Cle.mType = textntype.getText();
Set <String> nType = new HashSet<>();
boolean found = false;
String antes = Article.mFabricant;
Allarticle allarticle = new Allarticle();
allarticle.importFrom("article.txt");
for(String fabric : allarticle.getFabricants()){
if(fabric.equals(antes)){
found = true;
allarticle.getTypeForFabricant(antes).add(textntype.getText());
allarticle.exportTo("article.txt");
}
}
if(found == false){
nType.add(textntype.getText());
allarticle.addArticle(new Article(antes,nType));
allarticle.exportTo("article.txt");
}
追加機能であれば、私は第二の内側の問題を設立しているデバッグの場合:これは、コード(それは記事のセットですAllarticleクラス)です。変数mFabricantは静的であるという事実に関連するものがあると思いますが、私は他のJframeでそれが必要なので変更できません。 これは、関数addArticleとArticleクラスである:
public void addArticle(Article article){
mArticles.add(article);
}
public class Article {
protected static String mFabricant;
protected Set<String> mType;}
これは、モミのコードのJFrame Iから値を取得し、itemboxです:
Article.mFabricant = (String) articlesbox.getSelectedItem();
Cle.mFabricant = (String) articlesbox.getSelectedItem();
TypeFE obj = new TypeFE();
obj.setVisible(true);
dispose();
そして、ここでは、選択のためのコードですfabricantに基づいて、鍵の種類:
public TypeFE() {
initComponents();
setLocationRelativeTo(null);
setResizable(false);
setTitle("Type");
Allarticle allarticle = new Allarticle();
allarticle.importFrom("article.txt");
Set <String> marticles;
marticles = allarticle.getTypeForFabricant(Article.mFabricant);
for(String article : marticles){
typebox.addItem(article);
}
}
ありがとうございました! getFabricantメソッドを使用すると、すべてのJframeで値が同じになりますか?私が見つけた問題は、その記事が新しいフレームで定義されていないため、すべてで定義する必要がありますその場合、値は違うでしょうか、いいえ?私は、Javaでメモリストレージがどのように機能するかをよく知りません。どうもありがとうございました。 –
私はあなたのコードの変更を提案する答えを変更しました。何か不明な点がある場合は、電子メールで関係者と話し合いをしてください。私は変更を支援することができます。乾杯! –
ありがとう、私はJframeのクラスコンストラクタを変更することができませんでした!それは今完璧に動作します。再びありがとう –