我錯了,你的代碼中有一個非常基本的錯誤:你的stateChanged方法是錯誤的,因爲它需要一個ChangeEvent參數。更改
public void stateChanged() {
到
public void stateChanged(ChangeEvent e) {
的編譯器錯誤消息應該告訴所有這一切給你,並在未來,你要批判地閱讀這些信息,因爲他們會爲你節省很多的悲傷如果你這樣做。
例如:
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class SliderFoo extends JPanel {
private JSlider slider = new JSlider(0, 100, 50);
private JLabel label = new JLabel(" ", SwingConstants.CENTER);
public SliderFoo() {
slider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
label.setText(String.valueOf(slider.getValue()));
}
});
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
JPanel topPanel = new JPanel();
topPanel.add(new JLabel("Slider Value:"));
topPanel.add(label);
setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
setLayout(new BorderLayout(5, 5));
add(topPanel, BorderLayout.PAGE_START);
add(slider);
}
private static void createAndShowGui() {
SliderFoo mainPanel = new SliderFoo();
JFrame frame = new JFrame("SliderFoo");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
createAndShowGui();
});
}
}
'「?任何人都可以看到我已經錯了」「 - 似乎有什麼不對您發佈的代碼,提示錯誤不在於此。如果您仍然需要幫助,請通過創建併發布[mcve]來改善問題。我們不想看到你的整個程序,而是你應該將你的代碼壓縮到仍然編譯的最小位,沒有額外的代碼與你的問題無關,但仍然表明你的問題。通過簡單地嘗試隔離並暴露錯誤,您可能很好地解決了這個問題。 –
此外,發佈您可能遇到的任何和所有錯誤消息。 –