Creating different instances of one class

Hi everyone thanks so much for all the help so far! I want to create a new instance of class coauthorship everytime the loop goes around to a new record! However thats not whats happening it only creates 1 instance of coauthorship and it is overwritten with every loop here is Class Coauthorship
public class Coauthorship {
    private String name, coauthor, title;
    private List titles;
    /** Creates a new instance of Coauthorship */
    public Coauthorship(String name1, String name2, String TITLE){
        name = name1;
        coauthor = name2;
        title = TITLE;
        //List titles = Collections.synchronizedList(new ArrayList(alltitles));
    public String getauthor(){
        return name;
    public void settitle(String TITLE){
        title = TITLE;
    public void setname(String name1){
        name = name1;
   public void setcoauthor( String name2){
        coauthor = name2;
  // public void addTitle(String TITLE){
    //    if(TITLE != null)
    //    titles.add(TITLE);
    public String getcoauthor(){
        return coauthor;
       public String gettitle(){
        return title;
       public int getTitleCount(){
           return titles.size();
         public void printcoauthors(String currentauthor){
         //Extractdata ed = new Extractdata();
        // Coauthorship c = new Coauthorship(ed.getname1(), ed.getname2(), ed.getTITLE());
         if(currentauthor.equals(getauthor()))
             System.out.println(getcoauthor());
         else if (currentauthor.equals(getcoauthor()))
             System.out.println(getauthor());
         System.out.println(gettitle());
         System.out.println("Hello is this thing on?");
}and here is where the values are coming from in Class Extractdata
//Checks if the document was cowritten
                if(authors.getLength() > 0)            
                            for(int z = 0; z < authors.getLength(); z++){
                           //Begin with the second author so not to include the author in the list of coauthors
                                    for(int w = 1; w < authors.getLength(); w++){
                                        Coauthorship coauthorship = null;
                                        //Ensures that the author is not counted as a co-author
                                        if(z != w){
                                            name1 = names[z];
                                            name2 = names[w];
                                            Coauthorship c = new Coauthorship(name1, name2, TITLE);
                                            c.setname(name1);                                           
                                            c.setcoauthor(name2);
                                            c.settitle(TITLE);
                            }Thanks so much for everyones help so far

One thing to remember is that when you write:
Coauthorship c = new Coauthorship(name1, name2, TITLE);
Coauthorship c is creating a reference variable that points to an object that is of class type Coauthorship. It is NOT the object itself. It only points to the object in question.
It is the new Coauthorship(...) that actually creats the object in memory. So each time through the loop you are asking for a new Coauthoriship object and a new reference to that new object. Of course, Java (meaning the JVM) may (or always will - not sure here) re-use the reference variable at the same memory location. You loose the reference to each object create in the previous loop iteration leaving you with a reference pointing to the last object created in the loop when the loop ends.
If you could state in plain English what your goal is, that would help. From your code, I can tell that the goal (or problem domain) is not clear. Or at least, how to achieve that goal is not clear. State the requirements using ergular words (not psuedo code or such) that would help get things a little clearer.

Similar Messages

  • Creating an instance of a class with no default constructor

    Hello gurus,
    I wrote my own serialization and RMI protocol for both C++ and Java that follows closely what the default Java version does. I'm trying to recreate an object on the Java side that was sent over the wire. The first step is to create an instance of the class. How do I create an instance of a class that has no constructor (i.e. the only instances are static, created by the class itself and returned by static methods) or one that has no default constructor (like Integer)? The Java serialization seems to support it but the reflection API doesn't seem to have any support for this (i.e. Class::newInstance() and Constructor::newInstance()). It seems that through the standard API you can only create an object via one of its constructors. There must be a "hidden" method somewhere that allows the Java serialization to create an object without calling a constructor - where is it?
    Dominique

    There must be a "hidden" method
    somewhere that allows the Java serialization to create
    an object without calling a constructor - where is
    it?You are correct, the way in which the Serialization creates Objects is "hidden" deep within the runtime.
    If it were not hidden, you would be able to find it, and use it to violate the integrity of the VM.

  • Creating an instance of a class at runtime?

    Does anyone know how to create an instance of a class at RunTime? For example, I want to load classes from a JAR file at RunTime, and then create instances of certain classes of each JAR. I ask this because I do not see how to create an instance of one of those classes the traditional way, SomeClass var = new SomeClass(). I am pretty sure that someone out there has done this and succeeded in doing it. All of the post on this stuff only talk about loading the class from a JAR file, but I have already loaded them using URLClassLoader�s findClass() method. I have also created an instance of the class that findClass() returns using newInstance(), but newInstance() returns an object of type Object. How can I convert this object to an object of type SomeClass? You cannot cast it because the compiler will complain due to the import statement issue. So if you cannot include the import statement because that classpath does not exist, then how the heck would you cast the newInstance() object into a SomeClass object?

    You can cast the returned object to the type you need...that is what I do in my applet. The trick is that you must get the instance of the applets class loader (or you get a classCastException). Pay attention to this line below - that's the real key here.
    "// Get a reference to the applets own classloader"
    protected CBaseQuestionnaireFile m_BaseObject = null;// declared up front
    m_BaseObject = loadAndRunClass("com.cpm.dataentry.questionnaire.CQuestionnaireFile");// fully qualified base object
    Here is the load and run method:
       CBaseQuestionnaireFile loadAndRunClass(String classname)
          com.cpm.common.base.CBaseQuestionnaireFile questBase = null;
          Class cClass = null;
          try
             // first we open the jar file with the classes we need
             String[] aJarList = new String[10];
             // Questionnaire format file
             File fURL1 = new File(GetMainFrame().m_strQuestionnaireFileName);
             URL url1   = new URL(fURL1.toURL(),"");
             URL urlNew = new URL("jar:" + url1.toExternalForm() + "!/" );
             // Server base class directory
             String strServerDirectory = "http://" + GetMainFrame().m_strHost + "/APPLETS/";
             File fURL2 = new File(strServerDirectory);
             URL url2 = new URL(fURL2.toURL(),"");
             URL urlNew2 = new URL("jar:" + url2.toExternalForm() + "!/" );
             // Local base class directory
             String strLocalDirectory = CSystem.GetBasePath() + "/Research/bin/";
             File fURL3 = new File(strLocalDirectory);
             URL url3 = new URL(fURL3.toURL(),"");
             URL urlNew3 = new URL("jar:" + url3.toExternalForm() + "!/" );
             File fURLBase = new File(CSystem.GetBasePath() + "/Research/bin/base.jar");
             URL urlBase = new URL(fURLBase.toURL(),"");
             URL urlNewBase = new URL("jar:" + urlBase.toExternalForm() + "!/" );
             File fURLControl = new File(CSystem.GetBasePath() + "/Research/bin/controls.jar");
             URL urlControl = new URL(fURLControl.toURL(),"");
             URL urlNewControl = new URL("jar:" + urlControl.toExternalForm() + "!/" );
             File fURLUtil = new File(CSystem.GetBasePath() + "/Research/bin/utlities.jar");
             URL urlUtil= new URL(fURLUtil.toURL(),"");
             URL urlNewUtil = new URL("jar:" + urlUtil.toExternalForm() + "!/" );
             // Determine where to look
             URL[] urlList = null;
             if(GetMainFrame().m_isStandalone == false) {
                // From a browser
                CSystem.PrintDebugMessage("Running as an applet");
                if(GetMainFrame().m_bOnLineMode == true) {
                   // On line
                   CSystem.PrintDebugMessage("*** On Line Mode ***");
                   urlList = new URL[2];
                   urlList[0] = urlNew;
                   urlList[1] = urlNew2;
                else {
                   // Off line
                   CSystem.PrintDebugMessage("*** Off Line Mode ***");
                   urlList = new URL[4];
                   urlList[0] = urlNew;
                   urlList[1] = urlNewBase;
                   urlList[2] = urlNewControl;
                   urlList[3] = urlNewUtil;
              else {
                 CSystem.PrintDebugMessage("*** Stand Alone Mode ***");
                 urlList = new URL[1];
                 urlList[0] = urlNew;
    CSystem.PrintDebugMessage("Question file/path: " + GetMainFrame().m_strQuestionnaireFileName);
            // Set the wait cursor
            GetMainFrame().SetWaitCursor();
            // Get a reference to the applets own classloader
            Class myClass = getClass();
            ClassLoader appletClassLoader = myClass.getClassLoader();
            // Call our multi-jar class loader
            JarClassLoader jarLoader = new JarClassLoader(urlList,appletClassLoader);
    CSystem.PrintDebugMessage("CPM Test - passed Jar Loader" + jarLoader.toString());
             // Load the classname from the jarfile
             try
                  cClass = jarLoader.loadClass(classname);
             catch(ClassNotFoundException cnfe)
                Object[] optionsConfirm = { "Ok" };
                JOptionPane.showOptionDialog(GetMainFrame(),"Questionnaire file is either damaged or has been tampered with.", "Questionnaire File Error",
                JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, optionsConfirm, optionsConfirm[0]);
                GetMainFrame().m_strQuestionnaireFileName = "";
                // Clear the wait cursor
                GetMainFrame().ClearWaitCursor();
                return null;
             Class cSuperclass = cClass.getSuperclass();
    CSystem.PrintDebugMessage("Test Superclass type is: " + cSuperclass.toString());
             Object o = cClass.newInstance();
    CSystem.PrintDebugMessage("Test plain class type is: " + o.toString());
             // Never remove this line of code
             // without it, a crafty user could use our load routine
             // to load/and run some nasty code
             // This test makes SURE that *ONLY* questionnaires get opened
             // and their methods get called
             if(o instanceof com.cpm.common.base.CBaseQuestionnaireFile)
                // Create the object
    CSystem.PrintDebugMessage("Test Is instance of CBaseQuestionnaireFile");
    CSystem.PrintDebugMessage("CPM Test - Casting to Base Class");
                questBase = (com.cpm.common.base.CBaseQuestionnaireFile)o;
    CSystem.PrintDebugMessage("CPM Test - Getting languages from questionnaire");
                GetMainFrame().GetLanguagesFromQuestionnaire(questBase);
    CSystem.PrintDebugMessage("CPM Test - Setting locale from Questionnaire selection");
                questBase.SetQuestionnaireLocale(GetMainFrame().m_locale);
    CSystem.PrintDebugMessage("CPM Test - Initializing Questionnaire");
                questBase.Initialize();
                questBase.InitializeCards();
              else
                Object[] optionsConfirm = { "Ok" };
                JOptionPane.showOptionDialog(GetMainFrame(),"Questionnaire file is either damaged or has been tampered with.", "Questionnaire File Error",
                JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, optionsConfirm, optionsConfirm[0]);
                GetMainFrame().m_strQuestionnaireFileName = "";
                // Clear the wait cursor
                GetMainFrame().ClearWaitCursor();
                return null;
          catch (Exception e)
              exDialog.showForThrowable(e.toString(),e);
         // Clear the wait cursor
         GetMainFrame().ClearWaitCursor();
         // Set MouseListener Pointer
    //     questBase.SetMouseListenerPointer(GetMainFrame().m_mouseListener);
         return questBase;
       }

  • Create an instance of my class variable

    Hello all,
    I'm a newbie to iPhone/iPad programming and am having some trouble, I believe the issue is that I'm not creating an instance of my class variable.  I've got a class that has a setter and a getter, I know about properties but am using setters and getters for the time being.  I've created this class in a View-based application, when I build the program in XCode 3.2.6 everything builds fine.  When I step through the code with the debugger there are no errors but the setters are not storing any values and thus the getters are always returning 0 (it's returning an int value).  I've produced some of the code involved and I was hoping someone could point out to me where my issue is, and if I'm correct about not instantiating my variable, where I should do that.  Thanks so much in advance.
    <p>
    Selection.h
    @interface Selection : NSObject {
      int _choice;
    //Getters
    -(int) Choice;
    //Setters
    -(void) setChoice:(int) input;
    Selection.m
    #import "Selection.h"
    @implementation Selection
    //Getters
    -(int)Choice {
      return _choice;
    //Setter
    -(void)setChoice:(int)input{
              _choice = input;
    RockPaperScissorsViewController.m
    #import "RockPaperScissorsViewController.h"
    @implementation RockPaperScissorsViewController
    @synthesize rockButton, paperButton, scissorsButton, label;
    //@synthesize humanChoice, computerChoice;
    -(void)SetLabel:(NSString *)selection{
              label.text = selection;
    -(IBAction)rockButtonSelected {
    //          [self SetLabel:@"Rock"];
              [humanChoice setChoice:1];
    </p>
    So in the above code it's the [humanChoice setChoice:1] that is not working.  When I step through that portion with the debugger I get no errors but when I call humanChoice.Choice later on in the code I get a zero.
    -NifflerX

    It worked, thank you so much.  I put
    humanChoice = [[Selection alloc]init];
    In viewDidLoad and it worked like a charm.  Thank you again.
    -NifflerX

  • Creating multiple instances of a class in LabVIEW object-oriented programming

    How do you create multiple instances of a class in a loop?  Or am I thinking about this all wrong?
    For instance, I read in a file containing this information:
    Person Name #1
    Person Age #1
    Hobby #1
    Hobby #2
    Hobby #3
    Person Name #2
    Person Age #2
    Hobby #1
    Hobby #2
    Hobby #3
    Person Name #3
    Person Age #3
    Hobby #1
    Hobby #2
    Hobby #3
    If I define a Person class with name, age, and an array of strings (for the hobbies), how can I create several new Person instances in a loop while reading through the text file?
    FYI, new to LabVIEW OOP but familiar with Java OOP.  Thank you!

    First of all, let's get your terminology correct.  You are not creating multiple instances of a class.  You are creating Objects of the class.
    Use autoindexing to create an array of your class type.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How to create an instance of a class which is stored in a String?

    I've class name stored in a String Object.
    now i've to create an instance of that class name.
    How?

    This is very dangerous ground because you give up compile-time safety, but you can get a Class object using Class.forName(String). Then you can use methods of the class Class to operate on it (including creating an instance).

  • How to create an instance of a class?

    how do you create sn instance of a class, and how do you call a method from another class?

    You may need to read thru the information provided on this page to understand how to create objects: http://java.sun.com/docs/books/tutorial/java/data/objectcreation.html
    I'd also suggest you read the tutorial available at: http://java.sun.com/docs/books/tutorial/java/index.html
    Regarding how you call a method belonging to another class you could do it in the foll. ways depending on whether the method is static or not - a static method may be called using the class name followed by a dot and the static method name while a non-static method would require you to create an instance of the class and then use that instance name followed by a dot and the method name. All said and done i'd still suggest you read thru the complete Java programming tutorial to get a good grounding on all these concepts and fundamentals of the language if you are looking to master the technology.
    Thanks
    John Morrison

  • Create an instance of a class from class name

    Hi,
    I have the class name as a String variable. I need to create an instance from this class. How to do it in Java?
       Thanks and regards, Marina

    Hello
    see
    [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html#forName(java.lang.String)]
    and
    [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html#newInstance()]
    for Classes with paramterless constructor
    or
    [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Constructor.html#newInstance(java.lang.Object[])]
    for Constructor with parameters
    regards franz

  • Using variables in 5 instances of one Class in a seperate Class

    I have 5 instances of the one Class all returning different values. These values are parameteres for a final calculation. I am using Sliders as my data validation and I want my final calculation to react to the individual sliders being moved. I need to know the name of the slider and its value or do I?
    I would like to Calculate Tractive effort in Extra Panel, I know that all this has something to do with Event Handling but what?
    Any and help vastly appreciated otherwise I am goint to eat this computer cables and all.
    By the way I Hate Computers!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Code as follows:
    import java.awt.GridLayout;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    public class TractiveEffortCalculator extends JFrame
         private static final long serialVersionUID = 1L;
         public ConstructParametersPanel Instance = new ConstructParametersPanel();
         public ExtraPanel Sample = new ExtraPanel();
         public JPanel thisPanel;
         public TractiveEffortCalculator()
              thisPanel = new JPanel();
              //super ("N Generation Steam"+"           "+"Tractive Effort Calculator");
              BackGroundColour myColor = new BackGroundColour();
              //ConstructParametersPanel Instance = new ConstructParametersPanel();
              GridLayout grid = new GridLayout();
              grid.setColumns(2);
              grid.setHgap(10);
              grid.setRows(1);
              grid.setVgap(5);
              thisPanel.setLayout(grid);
              thisPanel.add(Instance.ConstructParametersPanelMethod());
              thisPanel.add(Sample.ExtraPanelMethod());
              setBackground(myColor.NewBackGroundColour());
              getContentPane().add(thisPanel);
              pack();
              setVisible(true);
              setLocation(40,50);
              setSize(800,600);
              //setResizable(false);
         public static void main(final String[]args)
              final TractiveEffortCalculator app = new TractiveEffortCalculator();
    import java.awt.GridLayout;
    import javax.swing.BorderFactory;
    import javax.swing.JPanel;
    public class ConstructParametersPanel extends JPanel
         private static final long serialVersionUID = 1L;
         private JPanel sidePanel;
         TheSliderClass Instance1 = new TheSliderClass();
         TheSliderClass Instance2 = new TheSliderClass();
         TheSliderClass Instance3 = new TheSliderClass();
         TheSliderClass Instance4 = new TheSliderClass();
         TheSliderClass Instance5 = new TheSliderClass();
         public JPanel ConstructParametersPanelMethod()
              sidePanel = new JPanel();
              BackGroundColour myColor = new BackGroundColour();
              GreenColour myColor2 = new GreenColour();
              BlackShadowColour myColor3 = new BlackShadowColour();
              sidePanel.setBorder(BorderFactory.createBevelBorder(1
                                                                          ,myColor2.NewGreenColour()
                                                                          ,myColor3.NewBlackShadowColour()
                                                                          ,myColor2.NewGreenColour()
                                                                          ,myColor3.NewBlackShadowColour()));
              GridLayout grid = new GridLayout();
              grid.setColumns(1);
              grid.setHgap(10);
              grid.setRows(6);
              grid.setVgap(5);
              sidePanel.setLayout(grid);
              sidePanel.setBackground(myColor.NewBackGroundColour());
              sidePanel.add(Instance1.TheSliderClassMethod("Boiler Pressure",200,320));
              sidePanel.add(Instance2.TheSliderClassMethod("Wheel Diameter",60,80));
              sidePanel.add(Instance3.TheSliderClassMethod("Stroke",10,20));
              sidePanel.add(Instance4.TheSliderClassMethod("Piston Rod",2,4));
              sidePanel.add(Instance5.TheSliderClassMethod("Tail Rod",1,3));
              return sidePanel;          
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Font;
    import java.awt.GridLayout;
    import javax.swing.BorderFactory;
    import javax.swing.JFormattedTextField;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JSlider;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    import javax.swing.text.NumberFormatter;
    public class TheSliderClass extends JPanel implements ChangeListener
         private static final long serialVersionUID = 1L;
         //Add a formatted text field to supplement the slider.
         public JFormattedTextField textField,textField2;
         public String publicSliderName = "";
         public int fps;
         //And here's the slider.
         public JSlider sliderParameterValue;
         JPanel labelAndTextField,allTogether;
         int TractiveEffort = 0;
         public JPanel TheSliderClassMethod(String sliderName, int minimumValue, int maximumValue)
              JPanel allTogether = new JPanel();
              Font font = new Font("palatino linotype regular", Font.BOLD, 12);
              int initialValue = ((minimumValue+maximumValue)/2);
              int tickMarkValue = (maximumValue-minimumValue);
              publicSliderName = sliderName;
              //Create the label.
              JLabel sliderLabel = new JLabel(sliderName,JLabel.CENTER);
              sliderLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
              sliderLabel.setFont(font);
              sliderLabel.setForeground(Color.BLUE);
              //Create the formatted text field and its formatter.
              java.text.NumberFormat numberFormat =
                   java.text.NumberFormat.getIntegerInstance();
              NumberFormatter formatter = new NumberFormatter(numberFormat);
              formatter.setMinimum(new Integer(minimumValue));
              formatter.setMaximum(new Integer(maximumValue));
              textField = new JFormattedTextField(formatter);
              textField.setValue(new Integer(initialValue));
              textField.setColumns(3); //get some space
              textField.setEditable(false);
              textField.setForeground(Color.red);
              textField2 = new JFormattedTextField(formatter);
              textField2.setValue(new Integer(initialValue));
              textField2.setColumns(3); //get some space
              textField2.setEditable(false);
              textField2.setForeground(Color.red);
              //Create the slider.
              sliderParameterValue = new JSlider(JSlider.HORIZONTAL,
              minimumValue, maximumValue, initialValue);
              sliderParameterValue.addChangeListener(this);
              //Turn on labels at major tick marks.
              sliderParameterValue.setMajorTickSpacing(tickMarkValue);
              sliderParameterValue.setMinorTickSpacing(10);
              sliderParameterValue.setPaintTicks(true);
              sliderParameterValue.setPaintLabels(true);
              sliderParameterValue.setBorder(
              BorderFactory.createEmptyBorder(0,0,0,0));
                                                      sliderParameterValue.setBackground(Color.cyan);
              //Create a subpanel for the label and text field.
              JPanel labelAndTextField = new JPanel(); //use FlowLayout
              labelAndTextField.setBackground(Color.cyan);      
              labelAndTextField.add(sliderLabel);
              labelAndTextField.add(textField);
              //Put everything together.
              GridLayout gridThis = new GridLayout();
              gridThis.setColumns(1);
              gridThis.setRows(2);
              allTogether.setLayout(gridThis);
              allTogether.add(labelAndTextField);
              allTogether.add(sliderParameterValue);
              allTogether.setBorder(BorderFactory.createBevelBorder(1,Color.red,
                                                                                    Color.red));
              return allTogether;
         /** Listen to the slider. */
         public void stateChanged(ChangeEvent e)
              JSlider source = (JSlider)e.getSource();
              fps = (int)source.getValue();
              textField.setText(String.valueOf(fps));
              textField2.setText(String.valueOf(fps));
    import java.awt.GridLayout;
    import javax.swing.JPanel;
    public class ExtraPanel extends JPanel
         private static final long serialVersionUID = 1L;
         public JPanel thisPanel;
         public ConstructParametersPanel aPointer;
         public JPanel ExtraPanelMethod()
              thisPanel = new JPanel();
              aPointer = new ConstructParametersPanel();
              GridLayout grid = new GridLayout();
              grid.setColumns(1);
              grid.setHgap(10);
              grid.setRows(6);
              grid.setVgap(5);
              thisPanel.setLayout(grid);
              return thisPanel;

    I don't know if anyone's going to go through all that code...but here's a hint.
    if you have 5 sliders and each one represents a separate variable you're going to use in your calculation...you will need to be able to read the change in THAT PARTICULAR slider to update that particular variable and recalculate.
    So you have a change state listener: The ChangeEvent passed to the
    public void stateChanged(ChangeEvent e) method will have a method called getSource() which you use. However, you aren't figuring out which slider it came from, you're just updating the text areas with info that comes from ANY slider.
    You can use e.getSource() to identify which slider it came from.
    Say you had the following JSlider sl1, sl2, sl3, sl4.
    And each one represents int int1, int2, int3, int4;
    what you do in your stateChanged code say
    if (e.getSource()==sl1){
    int1 = sl1.getValue();
    } else if (e.getSource()==sl2){
      int2 = sl2.getValue();
    } now you have identified which slider was activated. Hope this helps!

  • Create different instance ??

    on the basis of some values(1,2,3,4..) i hav to create different objects ..
    if any one can suggest me any way to do it apart from..
    IF ELSE
    SWITCH
    the list is long so i can't create instances and store them in hashtable or any other list..
    is there any design pattern for it..
    Class.forName("Aclass").getInstance().. return Object type object that can't be referenced by Aclass
    thanks

    it's called factory pattern or virtual constructor.
    %

  • Create multiple instances of same class but with unique names

    Hi,
    I'm creating an IM application in Java.
    So far I can click on a user and create a chat session, using my chatWindow class. But this means I can only create one chatWindow class, called 'chat'. How can I get the application to dynamically make new instances of this class with unique names, for examples chatWindowUser1, chatWindowUser2.
    Below is some code utlising the Openfire Smack API but hopefully the principle is the clear.
        private void chatButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
            int selectedUserIndex = rosterList.getSelectedIndex();
            String selectedUser = rostAry[selectedUserIndex].getUser();
            System.out.println("Chat with: " + selectedUser);
            if (chatBox == null) {
                JFrame mainFrame = CommsTestApp.getApplication().getMainFrame();
                chatBox = new CommsTestChatBox(mainFrame,conn,selectedUser);
                chatBox.setLocationRelativeTo(mainFrame);
            CommsTestApp.getApplication().show(chatBox);
    }  

    yes, an array would work fine, just realize that by using an array, you're setting an upper bound on the number of windows you can have open.
    As for unique names, if you mean unique variable name, you don't need one. The array index serves to uniquely identify each instance. If you mean unique title for the window, set that however you want (username, index in array, randomly generated string, etc.). It's just a property of the window object.

  • How to create the instance of a class and to use this object remotely

    I have to change a standalone program to do it working on a local net.
    the program is prepared for this adjustment, because the only problem for this change came from the use of the database; and, in the application, all the accesses to the database come from only a class that supplies a connection to the database.
    In this way I think that I could have (in a local net) a "server application" that has the database embedded inside it.
    Furthermore, some client applications (running in different computers of the net) could get access to the database through the connection that comes from an instance of the class that, in the "server application", is made to provide the connection to the database.
    I think this could be a good idea...
    But I don't have practice with distributed applications and I would ask some suggestion about the way to realize my modification.
    (in particular how to get and use, in the "client applications", the instance of the class that give the connection to the database from the "server application").
    I would have some help..
    thank in advance
    regards
    tonyMrsangelo.

    tonyMrsangelo wrote:
    I have to change a standalone program to do it working on a local net.
    the program is prepared for this adjustment, because the only problem for this change came from the use of the database; and, in the application, all the accesses to the database come from only a class that supplies a connection to the database.
    In this way I think that I could have (in a local net) a "server application" that has the database embedded inside it.
    Furthermore, some client applications (running in different computers of the net) could get access to the database through the connection that comes from an instance of the class that, in the "server application", is made to provide the connection to the database.
    I think this could be a good idea... Which is why JEE and implementations of that exist.
    But I don't have practice with distributed applications and I would ask some suggestion about the way to realize my modification.
    (in particular how to get and use, in the "client applications", the instance of the class that give the connection to the database from the "server application").
    You can't pass a connection from a server to a client. Nothing will do that.
    As suggested you can create a simple RMI server/client set up. Or use a more feature rich (and much more complex) JEE container.
    RMI is simple enough for its own tutorial
    [http://java.sun.com/docs/books/tutorial/rmi/index.html]
    JEE (previously called J2EE) is much more complex and requires books. You can get a brief overlook from the following
    [http://java.sun.com/javaee/]

  • Creating an instance of a class from within another class

    I am trying to create an instance of MCQ in the T class but I am getting this error:
    File: E:\JAVA PROGRAMS\assignment 1\T.java [line: 15]
    Error: cannot find symbol
    symbol : class MCQ
    location: class T
    here are the two classes:
    // class T
    import java.awt.*;
    import java.util.*;
    import java.lang.*;
    public class T{
    public T(String aT)
    pest = aT;
    public static T t_one()
    T aT = new T("Calculator");
    aT.addQ(new MCQ( " 2 + 2", "equals 4", "equals 5", "equals 0", " equals -2",
    "is a prime number", 1));
    return aT;
    private String pest;
    //class Q
    import java.awt.*;
    import java.util.*;
    import java.lang.*;
    public abstract class Q{
    Vector q = new Vector();
    public String aT;
    abstract void addQ(Q aQ);
    public class MCQ extends Q{
    String a,b,c,d,e,f,g;
    int answer;
    public MCQ (String a, String b, String c, String d, String e, int answer)
    this.a = a;
    this.b = b;
    this.c = c;
    this.d = d;
    this.e = e;
    this.answer = answer;
    void addQ(Q aQ)
    q.addElement(new T(aT));
    I tried to make reference to MCQ by doing this in class T:
    MCC qT = new MCQ() ;
    but that presents a whole other set of problems.
    please help I think I have tried everything!

    Use code tags (http://forum.java.sun.com/help.jspa?sec=formatting)
    Don't import java.lang.* . You get those automatically.
    Your MCQ class is really Q.MCQ (the way you posted, anyway).
    If Q weren't abstract, you could do:
    new Q().new MCQ(...)But, you can't create a Q without defining 'add'. You could do it anonymously, but that makes no sense. Put Q and MCQ in separate files and try again.

  • How to call a instance method without creating the instance of a class

    class ...EXCH_PRD_VERT_NN_MODEL definition
    public section.
      methods CONSTRUCTOR
        importing
          value(I_ALV_RECORDS) type ..../EXCH_VBEL_TT_ALV
          value(I_HEADER) type EDIDC .
      methods QUERY
        importing
          I_IDEX type FLAG
          i_..........
        returning
          value(R_RESULTS) type .../EXCH_VBEL_TT_ALV .
    Both methods are instance methods.
    But in my program i cannot created instance of the class unless i get the results from Query.
    I proposed that Query must be static, and once we get results we can create object of the class by pasing the result table which we get from method query.
    But i must not change the method Query to a static method.
    Is there any way out other than making method Query as static ?
    Regards.

    You can't execute any instance method without creating instance of the class.
    In your scenario, if you don't want to process your method of your class, you can check the instance has been created or not.
    Like:
    IF IT_QUERY IS NOT INITIAL.
      CRATE OBJECT O_QUERY EXPORTING......
    ENDIF.
    IF O_QUERY IS NOT INITIAL.
    CALL METHOD O_QUERY->QUERY EXPORTING....
    ENDIF.
    Regards,
    Naimesh Patel

  • How to create an instance of a class which is actually an array?

    the following code gives a runtime exception
    Object obj = (Object )attributeClass.newInstance();
    Exception:
    java.lang.InstantiationException: [Ltest.Name;[/b]
    Here test.Name is user defined class and i want to create an array instance of that class.
    I have tried the following also:
    [b]Object methodArgs[] = new Object[length];
    for(int j=0;j<length;++j){
    methodArgs[j] = singleMemberClass.cast(testArray[j]);
    Object temp = attributeClass.cast(methodArgs);
    In the above code singleMemberClass is test.Name, but the last line gives the following exception.
    java.lang.ClassCastException
    Message was edited by:
    lalit_mangal
    Message was edited by:
    lalit_mangal

    Try the following code
    import java.lang.reflect.Array;
    public class TestReflection {
         public static void main(String args[]) {
              Object array = Array.newInstance(A.class, 3);
              printType(array);
         private static void printType(Object object) {
              Class type = object.getClass();
              if (type.isArray()) {
                   System.out.println("Array of: " + elementType);
              System.out.println("Array size: " + Array.getLength(object));
    class A{
    }

Maybe you are looking for

  • Deleting pages from a PDF using Acrobat X Pro

    Hello, I need to delete some pages from a PDF.  Within the same document, I can delete some pages with no issue, but can't delete other pages.  Why not?

  • View Player Window opens too large on Mac screen

    I am using iTunes 6.0.4 and when I open up a podcast video in the "View Player" (lower left hand corner of iTunes) it opens up so large I cannot view it properly. How do I shrink the size of this "view" on my Mac. When I open the same "View Player" i

  • Overlapping Trips using Transaction PR05

    We are in the process of upgrading from 4.6C to ECC 6.0.  In our 4.6C system we allow overlapping trips between a Weekly Report (transaction PR04) and a Travel Expense Manager Report (transaction PR05).  This is accomplished using feature TRVPA, the

  • MobileMe Galleries not posting edits

    I am posting edited images into a MobileMe Gallery from Aperture 3. When I have created a gallery from scratch or am drag-and-dropping additional images, they edited images are not posting, but the unedited masters. They edited images are in .TIFF fo

  • Error cluster in XControls Property node

    Hello! Property Nodes of XControls do have Error Clusters, but how can I change those out of the Facade? I'm setting an object through a property node for tree data. It is possible that some of the object methods generate an error while executing in