Je voudrais ajouter des éléments à une zone de liste sur une jframe, à partir d'une classe différente mais cela ne semble pas fonctionner, peu importe ce que j'essaie ... Je ne reçois pas d'erreur ou de commentaires sur ce qui ne va pas avec ... mais voici la mise en page que j'ai, la boîte de liste utilise DefaultListModel lm2comment ajouter des éléments à une zone de liste d'une autre classe dans netbeans
Je sais comment ajouter des éléments à un jList dans la classe jframe, mais pour une raison que je ne peux pas ajouter elments d'une autre classe, même lors de l'ajout de cette classe dans la DFrame:
public void log(String str) {
lm2.addElement(str);
}
et sur mon « autre classe »
frmMain doit = new frmMain();
doit.log("add to list box");
#
Plus de détails Add- --->
#J'ai 3 classes et ici ils sont tous:
frmMain.class
// jFrame class which builds the jframe (from jframe template)
public class frmMain extends javax.swing.JFrame {
/** Creates new form frmMain */
public frmMain() {
initComponents();
}
public void log(String str) {
lm2.addElement(str);
}
public DefaultListModel lm2 = new DefaultListModel();
}
RequestInfo. classe
// RequestInfo.class, which is trying to add an item to the
// jlist but it doesn't add anything or error
public class RequestInfo {
public void ProcessReturnedInfo(String sData, boolean bWithLabel) {
frmMain fm = new frmMain();
fm.log("test test");
}
RS232Example.class
// My main class which sets the jFrame to visible
public class RS232Example {
public static void main(String[] args) throws Exception {
frmMain form = new frmMain();
form.setVisible(true);
}
}
Je comprends que je dois peut-être mettre en forme pour visible sur le RequestInfo.class, mais je ne peux pas le faire, car il ouvrira en permanence la forme plusieurs fois, parce que cette méthode de classe est appelé plusieurs fois à partir d'un événement ...
Qu'est-ce qu'une liste déroulante? Utilisez une terminologie appropriée lorsque vous posez une question. Si vous avez une référence à ListModel dans votre deuxième classe, alors la méthode addElement() devrait fonctionner. Publiez votre SSCCE (http://sscce.org) démontrant le problème. Le code que vous avez posté ne nous aide pas du tout. – camickr
Souvent, ce problème est dû à l'une des références, que le composant sur lequel vous appelez des méthodes pour modifier les données n'est pas celui qui est visualisé à l'écran. Je vois que dans votre "autre classe" vous appelez le nouveau frmMain() - est la variable doit frmMain que nous voyons au-dessus de celle qui est visualisée, que vous appelez setVisible (true) sur (si c'est une JFrame)? Sinon j'appuie tout ce que Rob Camick recommande ci-dessus. –
pour une raison quelconque, peu importe ce que j'essaie, je peux de nouveau référencer le DefaultListModel dans RequestInfo.class ... comment puis-je ajouter des éléments de cette classe? – jason