创建九个滑块,移动每个滑块在对应的表格里显示相应的数据。
现在的问题是怎么分别监视它们?import java.awt.BorderLayout;
import java.awt.GridLayout;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JTable;
public class SliperController { JFrame mainWin = new JFrame("滑动条示范");
JPanel JP = new JPanel();
JTable table = new JTable(3, 3);
JSlider slider; public void init() {

for (int i = 0; i < 9; i++) {
slider = new JSlider();
slider.setPaintTicks(true);
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
slider.setPaintLabels(true);
slider.addChangeListener(new MyChangeListener());
JP.add(slider);
}
JP.setLayout(new GridLayout(3, 3));
mainWin.add(new JScrollPane(table), BorderLayout.EAST);
mainWin.add(JP);
mainWin.pack();
mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWin.setVisible(true);
}

public static void main(String[] args) {
new SliperController().init();
}
}java gui 滑块监视

解决方案 »

  1.   

    楼主既然想分别监视他们,最好不要将之写到一个循环中啊
    至于怎么“分别”监听这是什么说法啊
    你的那个实现就已经是分别监听了哇
    给你一个比较吧:下面的这种形式
    package com.kiritor;import java.awt.BorderLayout;
    import java.awt.GridLayout;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSlider;
    import javax.swing.JTable;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;public class SliperController implements ChangeListener {
    @Override
    public void stateChanged(ChangeEvent e) {
    // TODO Auto-generated method stub } JFrame mainWin = new JFrame("滑动条示范");
    JPanel JP = new JPanel();
    JTable table = new JTable(3, 3);
    JSlider slider; public void init() { for (int i = 0; i < 9; i++) {
    slider = new JSlider();
    slider.setPaintTicks(true);
    slider.setMajorTickSpacing(20);
    slider.setMinorTickSpacing(5);
    slider.setPaintLabels(true);
    slider.addChangeListener(this);
    JP.add(slider);
    }
    JP.setLayout(new GridLayout(3, 3));
    mainWin.add(new JScrollPane(table), BorderLayout.EAST);
    mainWin.add(JP);
    mainWin.pack();
    mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainWin.setVisible(true);
    } public static void main(String[] args) {
    new SliperController().init();
    }
    }
      

  2.   

    谢谢~~我的意思是:这里有九个滑块,需要用九个监视器分别监视每一个滑块的动作。我的做法是用for循环产生九个滑块,然后发现一个监视器就监视了九个滑块。现在的问题是:怎么把每个滑块的动作由与之对应的监视器监听?(主要是为了获取每个滑块对应的数据)
      

  3.   

    难道是滑块之间的联动效果?!
    我都有点搞不清楚你的意思了
    package com.kiritor;import java.awt.BorderLayout;
    import java.awt.GridLayout;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSlider;
    import javax.swing.JTable;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;public class SliperController implements ChangeListener {
    @Override
    public void stateChanged(ChangeEvent e) {
    // TODO Auto-generated method stub } JFrame mainWin = new JFrame("滑动条示范");
    JPanel JP = new JPanel();
    JTable table = new JTable(3, 3);
    JSlider slider1;
    JSlider slider2; public void init() {
    slider1 = new JSlider();
    slider1.setPaintTicks(true);
    slider1.setMajorTickSpacing(20);
    slider1.setMinorTickSpacing(5);
    slider1.setPaintLabels(true);
    slider1.addChangeListener(new ChangeListener() {

    @Override
    public void stateChanged(ChangeEvent e) {
    slider2.setValue(slider1.getValue()-5);

    }
    });
    slider2 = new JSlider();
    slider2.setPaintTicks(true);
    slider2.setMajorTickSpacing(20);
    slider2.setMinorTickSpacing(5);
    slider2.setPaintLabels(true);
    slider2.addChangeListener(new ChangeListener() {

    @Override
    public void stateChanged(ChangeEvent e) {

    }
    });
    JP.add(slider1);
    JP.add(slider2);
    JP.setLayout(new GridLayout(3, 3));
    mainWin.add(new JScrollPane(table), BorderLayout.EAST);
    mainWin.add(JP);
    mainWin.pack();
    mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainWin.setVisible(true);
    } public static void main(String[] args) {
    new SliperController().init();
    }
    }