Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / First Aid / October 2006

Tip: Looking for answers? Try searching our database.

Help with DefaultListModel

Thread view: 
Pat010 - 04 Oct 2006 11:04 GMT
Hello there,

I was wondering if someone can help me. I am quite new to Java so
apologies for my lack of knowledge.

I have created a JList list with a listModel and I am using the
addElement() method to add a string to the JList.

private JList list;
private DefaultListModel listModel;
listModel = new DefaultListModel();
list = new JList(listModel);
listModel.addElement( aString );

So for instance if I press a JButton with JAVA written on it the string
'JAVA' appears on the JList.

I have also used several JButton to create a QWERTY keyboard. I want to
use the keyboard buttons on my application to write JAVA (or any word)
on the JList.

For example when I press the JButton, J the letter 'J' appears on
screen:

J

when I press the JButton, A the letter 'A' appears on screen in the
same position in the list next to where the letter J is:

JA

and so on.

There are three methods in the DefaultListModel class that adds an
element to a JList:

add()
addElement()
insertelementAt()

None of these seems to let me do what I want. Do i need to create a
method like the append() method in the JTextArea class?

Would it be easier to replace the string 'J' with the string 'JA' in
the list at a specified index?
Any suggestions?

By the way is it possible to view the code of methods in the API using
JBuilder ( I have version 1.3)?

Thanks
hiwa - 05 Oct 2006 03:11 GMT
> Hello there,
>
[quoted text clipped - 47 lines]
>
> Thanks
You can't do that directly onto JList or its model.
If your current code is:
listModel.addElement(userString);
then, repeatedly update the userString after each key press and
call listModel.setElementAt(index, userString);
Remi Arntzen - 05 Oct 2006 20:43 GMT
> > Hello there,
> >
[quoted text clipped - 52 lines]
> then, repeatedly update the userString after each key press and
> call listModel.setElementAt(index, userString);

It works for me
//GUIExam.java
import javax.swing.*;
public class GUIExam {
   public static void main(String[] args) {
       JFrame.setDefaultLookAndFeelDecorated(true);
       JFrame f = new JFrame("GUI TEST");
       DefaultListModel listModel = new DefaultListModel();
       JList list = new JList(listModel);
       f.getContentPane().add(list);
       f.setSize(200, 324);
       f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
       f.setVisible(true);
       try {
           for (int i = 0; i < 15; i++) {
               listModel.addElement(i);
               Thread.sleep(1000);
           }
       } catch (InterruptedException thrown) {
           //meh
           thrown.printStackTrace();
       }
       f.setVisible(false);
       f.dispose();
   }
}
Remi Arntzen - 05 Oct 2006 20:52 GMT
> It works for me

I am using jdk 6 so maybe things have changed internally within the
JList.java source code.
It may not work on your machine, but at least you know that it should
work.
Remi Arntzen - 05 Oct 2006 20:48 GMT
> > Hello there,
> >
[quoted text clipped - 52 lines]
> then, repeatedly update the userString after each key press and
> call listModel.setElementAt(index, userString);

It works for me
//GUIExam.java
import javax.swing.*;
public class GUIExam {
   public static void main(String[] args) {
       JFrame.setDefaultLookAndFeelDecorated(true);
       JFrame f = new JFrame("GUI TEST");
       DefaultListModel listModel = new DefaultListModel();
       JList list = new JList(listModel);
       f.getContentPane().add(list);
       f.setSize(200, 324);
       f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
       f.setVisible(true);
       try {
           for (int i = 0; i < 15; i++) {
               listModel.addElement(i);
               Thread.sleep(1000);
           }
       } catch (InterruptedException thrown) {
           //meh
           thrown.printStackTrace();
       }
       f.setVisible(false);
       f.dispose();
   }
}


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.