私はこのメソッドを設計して、値を返す必要のあるスライダを持つウィンドウを表示します。 JSliderの値を取得する方法を教えてください。現在、エラーが発生しています。「内部クラスから参照されるローカル変数は、最終的にまたは効果的に最終的にする必要がありますか?その後あなたは変数が最終的にする必要がある理由の答えは、私ができるより良い説明Javaの内部クラスから変数を読み取るにはどうすればよいですか?
((JSlider) evt.getSource()).getValue()
を行うことができるようになります
public void stateChanged(final ChangeEvent evt) {
へ
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;
}
エラーは既に何をすべきかを示しています。変数は、内部クラス –
で最終的にアクセスされる必要があります。最終的なエラーにつながります。最終変数に値を割り当てることはできませんsliderValue =((JSlider)evt.getSource())。getValue(); – florin27