日期:2014-05-20  浏览次数:20753 次

JSlider的滑道怎么控制颜色
现在我生成了一个0~254的JSlider,我想将它的0~100的滑道变为红色,提示用户这个区间无效,这个怎么实现,
还有一个问题,怎么对JSlider进行缩放,setBounds只能控制它显示区域的大小,并没有缩放

------解决方案--------------------
JSlider
public JSlider(int min,
int max)
Creates a horizontal slider using the specified min and max with an initial value equal to the average of the min plus max. 

使用这个构造参数来避开0-100我觉得比较可行,修改颜色估计要去修改Lookandfell,比较麻烦,至于缩放的话,如果布局正确的话,会自动缩放的
------解决方案--------------------
1、如果0~100不会被使用,就不从0开始构造就可以了。

2、如果需要,重写 SliderUI 实现。(如果需要的话,可以给你部分源码)

3、不要使用setBounds函数设置绝对位置,设置相应的Layout,并且添加到相应的位置,由Layout控制界面进行缩放。
但是每个组件都会有最小的Size限制,缩到一定程度之后就不能正常全部显示了
------解决方案--------------------
Java code
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;

import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.String 分隔符
   * @