0
메신저 스윙에 매우 익숙하지만 슬라이더와 라벨을 만드는이 프로그램을 만들려고했습니다. 슬라이더가 이동하면 (형태 1에서 16) 레이블이 변경됩니다. 그러나 내 레이블이 업데이트되지 않고 대신 슬라이더를 슬라이드 할 때 스레드 예외 및 기타 오류가 발생합니다. 전체 코드는 다음과 같습니다.슬라이더가 라벨을 업데이트하지 않음
package edu.cuny.brooklyn.cisc3120;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.*;
public class Gui extends JFrame {
private static final int limit = 4;
private static final int minInteger = 1;
private static final int maxInteger = 16;
private static JLabel currentGuess;
private static JSlider slider;
public Gui()
{
setLayout(new FlowLayout());
JSlider slider = new JSlider(JSlider.HORIZONTAL, minInteger, maxInteger, 1);
add(slider);
slider.setMajorTickSpacing(1);
slider.setPaintLabels(true);
slider.setPaintTicks(true);
currentGuess = new JLabel("Current Guess: 1");
add(currentGuess);
SliderEvent e = new SliderEvent();
slider.addChangeListener(e);
}
public static class SliderEvent implements ChangeListener
{
public void stateChanged(ChangeEvent e)
{
currentGuess.setText("Current Guess: " + slider.getValue());
}
}
public static void main(String[] args)
{
Gui guessingGame = new Gui();
guessingGame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guessingGame.setTitle("Guessing Game");
guessingGame.setLocation(100, 100);
guessingGame.pack();
guessingGame.setVisible(true);
}
}
나는 진동하기가 매우 쉽다는 것을 반복합니다. 그래서 내가 어리석은 실수를 저 지르면 나 한테 쉽게 가라.
* "나는 스윙하기가 매우 새롭다는 것을 반복한다."* 크로스 플랫폼 GUI를 만드는 것은 진보 된 주제이며, 예외를 이해하고 해결하기 전에 익숙해 져야한다. [스택 추적이란 무엇이며 어떻게 응용 프로그램 오류를 디버그 할 수 있습니까?] (http://stackoverflow.com/q/3988788/418556) & [Null Pointer Exception이란 무엇이며 어떻게 수정합니까? 그것?] (http://stackoverflow.com/q/218384/418556) 또 다른 팁 : 항상 복사 및 붙여 넣기 오류 및 예외 출력! –