setBackground via WindowListener

StepByStepButSlow

Aktives Mitglied
Ein schönes Wochenende alle Miteinander,

ich versuche momentan via eines WindowListeners den Background meines Frames beim Start des Programms zu ändern, scheitere jedoch momentan an der Ausführung.

Der Grundgedanke war, den Wert in einem JTextField (0, 1 oder 2) mithilfe eines WindowListeners und einer darin enthaltenen if-Abfrage zu nutzen und anhand der Zahl dem Frame eine Farbe zuweisen.

Java:
public class Mainframe extends JFrame {

    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private Color ColorChoice;
    private JPanel contentPane;
...
...
public Mainframe() throws ParseException {
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowActivated(WindowEvent arg0) {
                int ColorChoiceWert = Integer.parseInt(tfColor.getText());
                if (ColorChoiceWert == 0) {
                    ColorChoice = new Color(240,240,240);
                } else if (ColorChoiceWert == 1){
                    ColorChoice = Color.WHITE;
                } else if (ColorChoiceWert == 2) {
                    ColorChoice = Color.DARK_GRAY;
                }
               
            }
        });
        setTitle("Formular");
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 1637, 1010);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setBackground(ColorChoice);
        setLocationRelativeTo(null);
        setResizable(false);

Hat jemand vielleicht eine Idee, wo in meinem Code der Fehler liegt? Oder muss ich eventuell einen anderen Listener verwenden? Benutzt habe ich: "windowActivated".

Vielen Dank und noch ein angenehmes Wochenende.

Mit freundlichem Gruß
StepByStepButSlow
 
Was willst du denn genau erreichen? Willst du jedes mal die Farbe ändern, wenn sich der Wert in deinem TextField ändert? Dann würde ich wohl eher zu einem DocumentListener raten oder zu einem ActionListener (wobei hier die Eingabe mit Enter bestätigt werden müsste).

Gruß Robert
 

Zurück
Oben