2016-04-11 11 views
0

である方法の外にJavaオブジェクトを使用して、私は自分のベストを尽くします。ここで重要な3つのクラス、Art.java、AddArtGUI.java、およびGUI.javaがあります。 Art.javaはいくつかの属性を持つArtオブジェクトを作成しますが、何もしません。 GUI.javaは実行するもので、AddArtGUIを作成してユーザーに提供された属性を使用して新しいアートオブジェクトを作成するようにユーザーに求めます。 AddArtGUIを実行するたびに新しいアートオブジェクトが作成されますが、それで何もできません。私は "done"をクリックし、後で(例えば、viewArtメソッドのような)他のメソッドでアクセスできるように、オブジェクトをどこかに格納するaddArtGUIを持つ必要があります。私はまた、AddArtGuiを実行し、後でより多くのアートオブジェクトを作成する必要があります。別のクラスこれは明確には少し混乱して

これまでのところ私はこれを持っています。

package jz.art; 

import java.util.ArrayList; 

public class Art { 
    private String name; 
    private String artist; 
    private ArrayList<String> tags; 

    //constructor 
    public Art(String artName, String artistName){ 
     //various attributes 
     name = artName; 
     artist = artistName; 
     tags = new ArrayList<String>(); 
    } 

    //things for use in later methods 
    public String getName(){ 
     return name; 
    } 

    public String getArtist(){ 
     return artist; 
    } 

    public void addKeyword(String p){ 
     tags.add(p); 
    } 

    public boolean matches(String v){ 
     for(int i = 0; i<tags.size(); i++){ 
      if(tags.get(i)==v){ 
       return true; 
      } 
     } 
     return false; 
    } 

} 

そしてAddArtGUI:要約すると

package jz.art; 

import java.util.Arrays; 

public class AddArtGUI extends javax.swing.JFrame { 

    /** 
    * Creates new form AddArtGUI 
    */ 
    public AddArtGUI() { 
     initComponents(); 
     System.out.println("---AddArt Opened---"); 
    } 

    /** 
**//initialize form method went here.**      

    private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {            
     // TODO add your handling code here: 
     String attributes = tagsField.getText(); 
     String[] splitTags = attributes.split(", "); 

     Art a = new Art(artNameField.getText(), artistNameField.getText()); 

     for(int i = 0; i<splitTags.length; i++){ 
      a.addKeyword(splitTags[i]); 
     } 

     System.out.println("Sucessfully added a piece with the following attrubtes:"); 
     System.out.println("Name: "+artNameField.getText()); 
     System.out.println("Artist: "+artistNameField.getText()); 
     System.out.println("Tags: "+Arrays.toString(splitTags)); 
     this.dispose(); 
     System.out.println("---AddArt Closed---"); 

    }            

**//main method and look/feel setting code were here** 

    // Variables declaration - do not modify      
    private javax.swing.JLabel ArtNameTitel; 
    private javax.swing.JLabel ArtistNameTitile; 
    private javax.swing.JLabel TagsNameTitle; 
    private javax.swing.JLabel Title; 
    private javax.swing.JTextField artNameField; 
    private javax.swing.JTextField artistNameField; 
    private javax.swing.Box.Filler filler1; 
    private javax.swing.Box.Filler filler2; 
    private javax.swing.JButton submitButton; 
    private javax.swing.JTextField tagsField; 
    // End of variables declaration     
} 

:私はAddArtGUI方法の外にアートにオブジェクトを格納できるようにする必要があります。何か案は?

編集:私はアートオブジェクトのArrayListのを使うべきなのでしょうか?

+0

addArtGUIでアートオブジェクトのArrayListのは完全に受け入れています。 – NAMS

+0

だから、public ArrayListを追加しました allArt; addArtGUIおよびallArt.add(a);私はGUIフィールドに何かがあっても、それはallArt.add(a)ステートメントを指しています。何か案は? –

+0

*静的なものは何もありません - これが適切かどうかはわかりませんが、静的なものは決して静的なものには理解できません。 –

答えて

0

ArtオブジェクトメンバをAddArtGUIクラスに追加し、submitButtonActionPerformedメソッドでローカル変数を使用する代わりにこのメンバを設定できます。

関連する問題