如果JSlider更改,请更新JPanel边框

时间:2016-04-26 08:10:44

标签: java swing jlabel jslider

如果我通过JPanel更改类变量,有人可以告诉我如何更改TitledBorder / JSlider的某些属性吗?

e.g。我有类变量" number"并通过滑块上的stateChanged事件更改此var。现在我想实现数字的值显示在面板的标题边框内。

    panelX = new JPanel(new GridLayout(3,0));
    panelX.setBorder(new TitledBorder("P0: X = "));
    frame.add(panelX);

    slider_x = new JSlider(0, 100);
    slider_x.addChangeListener(this);

    panelX.add(slider_x);

@Override
public void stateChanged(ChangeEvent e)
{
    Object source = e.getSource();
    System.out.println(source);
    hasChanged = true;
    if(source instanceof JSlider) {
        update();
    }
}

是否可以访问附加事件触发滑块的面板的标题边框?

1 个答案:

答案 0 :(得分:2)

您只需为面板设置新边框即可。

@Override
public void stateChanged(ChangeEvent e)
{
    Object source = e.getSource();
    System.out.println(source);
    hasChanged = true;
    if(source instanceof JSlider) {
        panelX.setBorder(new TitledBorder("P0: X = " + ((JSlider) source).getValue());
        update();
    }
}