如果 JSlider 更改,则更新 JPanel 边框
Update JPanel border if JSlider changes
如果我通过 JSlider
更改 class 变量,有人可以大致告诉我如何更改 JPanel
/TitledBorder
的某些属性吗?
例如我有 class 变量 "number" 并通过滑块上的 stateChanged
事件更改此变量。现在我想实现数字的值显示在面板的标题边框内。
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();
}
}
是否可以访问附加事件触发滑块的面板的标题边框?
您只需为面板设置新边框即可。
@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();
}
}
如果我通过 JSlider
更改 class 变量,有人可以大致告诉我如何更改 JPanel
/TitledBorder
的某些属性吗?
例如我有 class 变量 "number" 并通过滑块上的 stateChanged
事件更改此变量。现在我想实现数字的值显示在面板的标题边框内。
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();
}
}
是否可以访问附加事件触发滑块的面板的标题边框?
您只需为面板设置新边框即可。
@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();
}
}