Hallo. Ich habe eine Klasse FileTypeOptions welche ein Panel mit einigen Optionen erzeugt. Dieser Klasse werden 3 String übergeben. Da Strings ja Objekte sind, sollte sie per Referenz übergeben werden. Wenn ich allerdings in dieser Klasse die Strings ändere, wird der String der übergeben wurde nicht geändert. Woran liegt das?
Wobei es so aufgerufen wird
options.FILE_TYPE_APPLICATION ist NICHT final, sondern NUR public
mfg
Java:
package gecko.view;
import stuff...
public class FileTypeOption extends JPanel {
private Logger log;
private String type;
private String orig;
private JButton rst;
private JTextField txt;
public FileTypeOption(String name, String type, final String orig) {
log = LogManager.getLogger(getClass());
log.debug("Initialisiere " + getClass());
this.type = type;
this.orig = orig;
createPanel(name);
log.debug(getClass() + " wurde initialisiert");
}
private void createPanel(String name) {
txt = new JTextField(type);
txt.setPreferredSize(new Dimension(200, 25));
txt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
type = txt.getText();
}
});
rst = new JButton("Reset");
rst.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txt.setText(orig);
type = orig;
}
});
add(new JLabel(FileTypeManager.getSmallIcon(name)), BorderLayout.WEST);
add(txt);
add(rst, BorderLayout.EAST);
}
}
Wobei es so aufgerufen wird
Java:
typePan.add(new FileTypeOption("application",
options.FILE_TYPE_APPLICATION,
options.FILE_TYPE_APPLICATION_ORIG));
options.FILE_TYPE_APPLICATION ist NICHT final, sondern NUR public
mfg