2
有人可以告訴我一般如何更改JPanel
/TitledBorder
的某些屬性,如果我通過JSlider
更改類變量?更新JPanel邊框,如果JSlider更改
例如我有類變量「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();
}
}
是否可以訪問事件觸發滑塊連接到的面板的標題邊框?
您應該設置一個新的邊界與新標題 –
您的面板您需要TitledBorder'的'原始實例的引用,那麼你可以使用['#的TitledBorder setTitle'(https://開頭的文檔.oracle.com/javase/8/docs/api/javax/swing/border/TitledBorder.html#setTitle-java.lang.String-) – MadProgrammer
做一個真正可怕的方法可能是像'( (JComponent)((JSlider)e.getSource())。getParent())。getBorder()',但如果這不會炸燬你的臉,那麼你非常非常幸運 – MadProgrammer