である方法の外に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のを使うべきなのでしょうか?
addArtGUIでアートオブジェクトのArrayListのは完全に受け入れています。 – NAMS
だから、public ArrayListを追加しました allArt; addArtGUIおよびallArt.add(a);私はGUIフィールドに何かがあっても、それはallArt.add(a)ステートメントを指しています。何か案は? –
*静的なものは何もありません - これが適切かどうかはわかりませんが、静的なものは決して静的なものには理解できません。 –