java 控件多_Java Swing MVC:如何制作带有多个控件的接口...

我有一个正在使用的Swing应用程序,它具有一对同时显示和显示JSliders和JTextField的对象.控制两个数字的值.现在,我将各种东西融合在一起以使其正常工作,拦截更改事件并更新显示.但是,我在想一种更好的方法是制作一个具有两个数字的模型,并以某种方式将此模型链接到我的GUI视图.我知道如何制作模型,但是对于如何将其链接到GUI视图有点迷lost……有什么建议吗?

更新:我的模型已准备就绪,包括触发属性更改.我想我想使用某种数据绑定方法(例如JGoodies Binding),但是我不确定如何… JGoodies Binding不支持滑块.

编辑:还请注意,当滑块更改位置时,文本字段应更改其值;当文本字段更改值时,滑块应更改位置;当模型更改值时,两个文本字段滑块都应更新.

最佳答案

为了使两个组件保持同步,只需让每个组件的EventListener更新另一个组件即可.这是连接JSlider和JSpinner的示例:

public class SpinSlider extends JPanel {

public static void main(String args[]) {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

JFrame frame = new JFrame("SpinSlider");

frame.add(new SpinSlider());

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setVisible(true);

}

});

}

public SpinSlider() {

this.setLayout(new FlowLayout());

final JSpinner spinner = new JSpinner();

final JSlider slider = new JSlider();

slider.addChangeListener(new ChangeListener() {

@Override

public void stateChanged(ChangeEvent e) {

JSlider s = (JSlider) e.getSource();

spinner.setValue(s.getValue());

}

});

this.add(slider);

spinner.setModel(new SpinnerNumberModel(50, 0, 100, 1));

spinner.addChangeListener(new ChangeListener() {

@Override

public void stateChanged(ChangeEvent e) {

JSpinner s = (JSpinner) e.getSource();

slider.setValue((Integer) s.getValue());

}

});

this.add(spinner);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值