读书人

有关问题

发布时间: 2012-02-20 21:18:24 作者: rapoo

问题。

请教下 怎么实现上面图片的功能 。谢谢。

[解决办法]
以前做的 像后面那个调动的没试过,你参考下吧:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.HeadlessException;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class JSliderDemo extends JFrame implements ChangeListener {


private JSliderEx sliderRed,sliderGreen,sliderBlue;
private JPanel colorPanel,sliderPanel;
private Color color;
@Override
public void stateChanged(ChangeEvent e) {
color = new Color(sliderRed.getValue(),sliderGreen.getValue(),sliderBlue.getValue());
colorPanel.setBackground(color);
}

public JSliderDemo() throws HeadlessException {
super("JSliderDemo");
setSize(400,300);
Container container = getContentPane();
try {//主要作用在于显示焦点所在
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
colorPanel = new JPanel();
container.add(colorPanel,BorderLayout.CENTER);

sliderPanel = new JPanel();
sliderPanel.setBackground(color.YELLOW);
sliderPanel.setPreferredSize(new Dimension(400,150));
sliderPanel.setLayout(new GridLayout(3,1,5,5));

sliderRed = new JSliderEx(this,0,255);
sliderGreen = new JSliderEx(this,0,255);
sliderBlue = new JSliderEx(this,0,255);

sliderRed.setBackground(Color.RED);
sliderGreen.setBackground(Color.GREEN);
sliderBlue.setBackground(Color.BLUE);

sliderPanel.add(sliderRed);
sliderPanel.add(sliderGreen);
sliderPanel.add(sliderBlue);

container.add(sliderPanel,BorderLayout.SOUTH);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

class JSliderEx extends JSlider{
public JSliderEx(ChangeListener listener,int min,int max){
super(min,max);
setPaintTicks(true);//显示一条条竖着的
setMajorTickSpacing(15);//大块大块的分,当中还有最小的
setMinorTickSpacing(3);//最小单位
setPaintLabels(true);//显示下标数字
addChangeListener(listener);//添加监听事件,滑动条是否改变
}
}

public static void main(String[] args) {
JSliderDemo application = new JSliderDemo();
}

}

读书人网 >J2SE开发

热点推荐