2016-04-05 12 views
1

JSliderをリアルタイムでJLabelに更新しようとしていますが、エラーが発生しています。これまでのコードはここまでです:JSliderを使用してJLabelをリアルタイムで更新する

slider.addChangeListener(new ChangeListener() { 
    public void stateChanged() { 
     label.setText(String.valueOf(slider.getValue())); 
    } 
}); 

誰かが間違っている場所を見れますか? ありがとう、

+0

'「?私は間違って行ってきたところ誰もが見ることができる」' - エラーは別の場所であることを示唆している、あなたが投稿したコードと間違って何もないように思われます。まだ助けが必要な場合は、[mcve]を作成して投稿することで問題を改善してください。私たちはあなたのプログラム全体を見たいとは思っていませんが、あなたのコードをコンパイルしてコンパイルし、あなたの問題とは関係ない余分なコードがなくてもあなたの問題を実証しています。バグを分離して公開しようとするだけで、問題を非常にうまく解決できます。 –

+0

また、発生する可能性のあるすべてのエラーメッセージを投稿してください。 –

答えて

1

私は間違っていた、あなたのコードに非常に基本的なエラーがあります:ChangeEventパラメータが必要なので、あなたのstateChangedメソッドは間違っています。彼らはあなたに多くの悲しみを節約するよう、変更

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(); 
     }); 
    } 
} 
+0

はい、今すぐ使えます!ありがとうございました! – Tia

関連する問題