Ich habe diese Methode entworfen, um ein Fenster mit einem Schieberegler anzuzeigen, den Wert, den ich zurückgeben muss. Können Sie mir bitte sagen, wie ich den JSlider-Wert abrufen kann? Ich erhalte derzeit den Fehler: "Lokale Variablen, die von einer inneren Klasse referenziert werden, müssen endgültig oder effektiv endgültig sein"?Wie kann ich eine Variable aus einer inneren Klasse in Java lesen?
private static int displayFontPanel(JFrame w){
JFrame window = new JFrame("Font Settings");
window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
int fontSize = 14;
window.setSize(400, 200);
window.setLocationRelativeTo(w);
JSlider fntSize = new JSlider(8,40,20);
fntSize.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent evt) {
fontSize = ((JSlider)evt.getSource()).getValue();
}
});
fntSize.setLabelTable(fntSize.createStandardLabels(8));
fntSize.setPaintLabels(true);
panel.add(fntSize, BorderLayout.CENTER);
window.setContentPane(panel);
window.setVisible(true);
return fontSize;
}
der Fehler sagt Ihnen bereits, was zu tun ist. Die Variable muss endgültig sein, um in einer inneren Klasse –
zugegriffen zu werden, was mich zu einem weiteren Fehler führt: der letzten Variablen kann kein Wert zugewiesen werden sliderValue sliderValue = ((JSlider) evt.getSource()). GetValue(); – florin27