Hallo,
ich möchte ein Programm scheiben. Das Hauptmenü von dem Programm ist eine JList. In dieser Liste soll man Einträge hinzufügen können. Wenn ein neues Element hinzugefügt werden soll, öffnet sich ein neues Fenster, in dem man den Titel für das neue Element eingeben kann.
Das Problem ist jetzt, wenn man in dem zweiten Fenster auf Hinzufügen klickt, wird nichts in der Liste hinzugefügt.
Ich habe schon einiges probiert, alles jedoch ohne Erfolg.
Hier habe ich jetzt noch dein kleines Beispiel Programm, dass das oben beschriebene Problem zeigt.
Das Haupt Fenster
Und das Fenster um ein neues Element hinzuzufügen
ich möchte ein Programm scheiben. Das Hauptmenü von dem Programm ist eine JList. In dieser Liste soll man Einträge hinzufügen können. Wenn ein neues Element hinzugefügt werden soll, öffnet sich ein neues Fenster, in dem man den Titel für das neue Element eingeben kann.
Das Problem ist jetzt, wenn man in dem zweiten Fenster auf Hinzufügen klickt, wird nichts in der Liste hinzugefügt.
Ich habe schon einiges probiert, alles jedoch ohne Erfolg.
Hier habe ich jetzt noch dein kleines Beispiel Programm, dass das oben beschriebene Problem zeigt.
Das Haupt Fenster
Java:
import java.awt.EventQueue;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.JList;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Liste implements ActionListener {
private JFrame frame;
public static JList list;
public static DefaultListModel model;
private JButton button;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Liste window = new Liste();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Liste() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
model = new DefaultListModel();
frame.getContentPane().setLayout(null);
list = new JList(model);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scrollPane = new JScrollPane(list);
scrollPane.setBounds(10, 11, 414, 206);
frame.getContentPane().add(scrollPane);
button = new JButton("Neuer Eintrag");
button.setBounds(10, 228, 89, 23);
frame.getContentPane().add(button);
button.addActionListener(this);
button.setActionCommand("neu");
}
@Override
public void actionPerformed(ActionEvent arg0) {
if(arg0.getActionCommand().equals("neu")){
new NeuerEintrag().eintrag();
}
}
}
Java:
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
public class NeuerEintrag implements ActionListener {
private JFrame frame;
private JTextField textField;
/**
* Launch the application.
*/
public static void eintrag() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
NeuerEintrag window = new NeuerEintrag();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public NeuerEintrag() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 300, 120);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().setLayout(null);
textField = new JTextField();
textField.setBounds(10, 11, 264, 20);
frame.getContentPane().add(textField);
textField.setColumns(10);
JButton button = new JButton("Hinzuzufügen");
button.setBounds(10, 42, 120, 23);
frame.getContentPane().add(button);
button.addActionListener(this);
button.setActionCommand("add");
}
@Override
public void actionPerformed(ActionEvent arg0) {
if(arg0.getActionCommand().equals("add")){
String eingabe = textField.getText();
new Liste().model.addElement(eingabe);
frame.dispose();
}
}
}