ActionListener и ChangeListener, изменяющие paintComponent, не работают - PullRequest
0 голосов
/ 03 апреля 2019

Пользователь предполагает ввести строку, чтобы изменить напечатанный текст, и изменить ползунок, чтобы изменить размер круга.Но ни ползунок, ни текстовое поле не имеют никаких ответов.

Компоненты (ползунок, текстовое поле, строка, круг) все распечатаны, но они просто не реагируют ни на что

paintComponent

public void paintComponent(Graphics g)
{
    super.paintComponent(g);

    g.drawString(text,100,10);
    g.fillOval(100,100,circleSize,circleSize);
}

TextField

class TextfieldPanel extends JPanel
{
    public TextfieldPanel()
    {
        TextfieldHandler thandler = new TextfieldHandler();
        textfield = new JTextField("enter",10);
        add(textfield);
        textfield.addActionListener(thandler);
    }

    class TextfieldHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent evt)
        {
            String input = textfield.getText();
            text = input;
            repaint();
        }
    }

}

Ползунок

class SliderPanel extends JPanel
{
    public SliderPanel()
    {
        SliderHandler shandler = new SliderHandler();
        slider = new JSlider(JSlider.VERTICAL);
        add(slider);
        slider.addChangeListener(shandler);
    }

    class SliderHandler implements ChangeListener
    {
        public void stateChanged(ChangeEvent evt)
        {
            int value = slider.getValue();
            circleSize = value;
            repaint();
        }
    }


}
...