Hallo zusammen,
ich lerne mir gerade ein wenig Java Kenntnisse zusammen und stehe nun vor einer Aufgabe, deren Lösung von mir nicht so funktioniert wie sie sollte und ich gerade den Fehler nicht erkenne
Ich möchte ein kleines Mail Programm in Java erstellen. Wenn ich auf eine Mail antworte oder sie weiterleite, soll der entsprechende Adressat(bei Antworten), der Betreff und der Text entsprechend angepasst werden.
Dafür rufe ich einen Konstruktor mit entsprechenden Werten auf, aber die Felder werden nicht angepasst. Es werden immer die Inhalte aus der InitGui() übernommen.
Ich teile anbei mal nicht den gesamten Code, sondern lediglich den Konstruktur, die initGui() und den Aufruf des Konstruktors - vllt findet da ja bereits jemand, woran der Fehler liegt?
Hier wird der Konstruktor aufgerufen
ich lerne mir gerade ein wenig Java Kenntnisse zusammen und stehe nun vor einer Aufgabe, deren Lösung von mir nicht so funktioniert wie sie sollte und ich gerade den Fehler nicht erkenne
Ich möchte ein kleines Mail Programm in Java erstellen. Wenn ich auf eine Mail antworte oder sie weiterleite, soll der entsprechende Adressat(bei Antworten), der Betreff und der Text entsprechend angepasst werden.
Dafür rufe ich einen Konstruktor mit entsprechenden Werten auf, aber die Felder werden nicht angepasst. Es werden immer die Inhalte aus der InitGui() übernommen.
Ich teile anbei mal nicht den gesamten Code, sondern lediglich den Konstruktur, die initGui() und den Aufruf des Konstruktors - vllt findet da ja bereits jemand, woran der Fehler liegt?
Java:
//der Konstruktor
public Antwort(JFrame parent, boolean modal, String originalSender, String originalSubject, String originalContent) {
super(parent, modal);
setTitle("Neue Nachricht (Antwort)");
//die Oberfläche erstellen
initGui(originalSender, originalSubject, originalContent);
//Standardoperation setzen
//hier den Dialog ausblenden und löschen
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
// Den ursprünglichen Absender und Betreff verwenden
empfaengerFeld.setText(originalSender);
betreffFeld.setText("AW: " + originalSubject);
// Den Inhalt der ursprünglichen Nachricht übernehmen und trennen
inhaltFeld.setText("----- Text der ursprünglichen Nachricht ----\n" + originalContent);
}
private void initGui(String empfaenger, String betreff, String inhalt) {
setLayout(new BorderLayout());
JPanel oben = new JPanel();
oben.setLayout(new GridLayout(0, 2));
oben.add(new JLabel("Empfänger:"));
empfaengerFeld = new JTextField(empfaenger);
oben.add(empfaengerFeld);
oben.add(new JLabel("Betreff:"));
betreffFeld = new JTextField(betreff);
oben.add(betreffFeld);
add(oben, BorderLayout.NORTH);
inhaltFeld = new JTextArea(inhalt);
//den Zeilenumbruch aktivieren
inhaltFeld.setLineWrap(true);
inhaltFeld.setWrapStyleWord(true);
//das Feld setzen wir in ein Scrollpane
JScrollPane scroll = new JScrollPane(inhaltFeld);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
add(scroll);
JPanel unten = new JPanel();
//die Schaltflächen
ok = new JButton("Senden");
ok.setActionCommand("senden");
abbrechen = new JButton("Abbrechen");
abbrechen.setActionCommand("abbrechen");
NeuListener listener = new NeuListener();
ok.addActionListener(listener);
abbrechen.addActionListener(listener);
unten.add(ok);
unten.add(abbrechen);
add(unten, BorderLayout.SOUTH);
//anzeigen
setSize(600, 300);
setVisible(true);
}
Hier wird der Konstruktor aufgerufen
Code:
// Methodenaufruf Antwort
private void antworten() {
// Hier wird überprüft, ob eine Reihe ausgewählt ist
int selectedRow = tabelle.getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(this, "Keine Nachricht ausgewählt.");
return;
}
String sender = tabelle.getModel().getValueAt(selectedRow, 1).toString();
String betreff = tabelle.getModel().getValueAt(selectedRow, 2).toString();
String inhalt = tabelle.getModel().getValueAt(selectedRow, 3).toString();
new Antwort(this, true, sender, betreff, inhalt);
tabelleAktualisieren();
}