G
Guest
Gast
Hi,
zunächst mal folgendes:
Ich war mir nicht sicher, ob das hier zu den Anfängerfragen oder zu SWT/AWT gehört. Zwar handelt es sich um eine JList, doch ist das Problem vlt ein ganz anderes.
was ich vorhabe:
Ich möchte mittels einer Klasse (welche ein Frame beinhaltet) String-Elemente nach und nach zu einer JList hinzufügen. Da ich eigtl nur Daten nachträglich speicher und wieder lösche habe ich mich für eine LinkedList, anstelle einer Arraylist, entschieden.
Die JList befindet sich in der selben Klasse im Frame und ist static. Der Frame an sich ist mit einem GUI-Builder erstellt worden. (Netbeans)
Die JList hat nach der Erzeugung das DefaultListModel bekommen ( callstack.setModel(new DefaultListModel()); )
Das Problem:
Der Compiler sagt mir in Zeile 9 ( private static DefaultListModel stackListModel = (DefaultListModel)callstack.getModel(); ) illegal forward reference.
Was bedeutet das? Was mache ich falsch?
Der Source:
zunächst mal folgendes:
Ich war mir nicht sicher, ob das hier zu den Anfängerfragen oder zu SWT/AWT gehört. Zwar handelt es sich um eine JList, doch ist das Problem vlt ein ganz anderes.
was ich vorhabe:
Ich möchte mittels einer Klasse (welche ein Frame beinhaltet) String-Elemente nach und nach zu einer JList hinzufügen. Da ich eigtl nur Daten nachträglich speicher und wieder lösche habe ich mich für eine LinkedList, anstelle einer Arraylist, entschieden.
Die JList befindet sich in der selben Klasse im Frame und ist static. Der Frame an sich ist mit einem GUI-Builder erstellt worden. (Netbeans)
Die JList hat nach der Erzeugung das DefaultListModel bekommen ( callstack.setModel(new DefaultListModel()); )
Das Problem:
Der Compiler sagt mir in Zeile 9 ( private static DefaultListModel stackListModel = (DefaultListModel)callstack.getModel(); ) illegal forward reference.
Was bedeutet das? Was mache ich falsch?
Der Source:
Code:
package test01;
import java.util.LinkedList;
import javax.swing.DefaultListModel;
public class CallstackFrame extends javax.swing.JFrame {
private static LinkedList callstackList = new LinkedList();
private static DefaultListModel stackListModel = (DefaultListModel)callstack.getModel();
/**
* Creates new form CallstackFrame
*/
public CallstackFrame() {
initComponents();
}
/**
* Method to add elements to the callstackList.
* @param element The element (a string) you want to display
*/
public static void addElement(String element) {
callstackList.add(element);
callstack.updateUI();
}
/**
* Method for updating the callstack.
*/
public static void updateCallstack() {
callstack.removeAll();
for ( int i = 0; i < callstackList.size(); i++ ){
stackListModel.addElement(callstackList.get(i));
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
callstack = new javax.swing.JList();
callstack.setModel(new DefaultListModel());
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(Main.langGet("callstack"));
jScrollPane1.setViewportView(callstack);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 132, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
);
pack();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new CallstackFrame().setVisible(true);
}
});
}
// Variablendeklaration - nicht modifizieren
private static javax.swing.JList callstack;
private javax.swing.JScrollPane jScrollPane1;
// Ende der Variablendeklaration
}