当前位置:编程学习 > JAVA >>

美女

slider = new JSlider(0, 100, 0);
slider.setLocation(15, 1);
slider.setSize(450, 30);
slider.setUI(new MySliderUI());----这个地方报异常

异常为: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.metal.MetalSliderUI.installUI(Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JSlider.setUI(Unknown Source)
  at com.zl.smarthome.frame.LightControl.init(LightControl.java:127)
at com.zl.smarthome.frame.LightControl.<init>(LightControl.java:52)

下面是自己写的UI类

class MySliderUI extends javax.swing.plaf.metal.MetalSliderUI {
/** */
/**
* 绘制指示物
*/
public void paintThumb(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.blue);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
// 填充椭圆框为当前thumb位置
thumbRect.setBounds(thumbRect.x, 0, 25, 30);
g2d.fillOval(thumbRect.x, thumbRect.y, thumbRect.width,
thumbRect.height);
// System.out.println(thumbRect.x + "---------" + thumbRect.y
// + "----------" + thumbRect.width + "----------"
// + thumbRect.height + "--------------------");
// 也可以帖图(利用鼠标事件转换image即可体现不同状态)
// g2d.drawImage(image, thumbRect.x, thumbRect.y,
// thumbRect.width,thumbRect.height,null);
}

/** */
/**
* 绘制刻度轨迹
*/
public void paintTrack(Graphics g) {
int cy, cw;
trackRect.setSize(430, 30);
if (slider.getOrientation() == JSlider.HORIZONTAL) {
Graphics2D g2 = (Graphics2D) g;
cy = trackRect.height - 1;
cw = trackRect.width - 1;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.translate(trackRect.x, cy);
// 背景设为灰色
g2.setPaint(Color.white);
g2.fillRect(0, -cy, cw, trackRect.height - 1);
int trackLeft = 0;
int trackRight = 0;
trackRight = trackRect.width - 1;
int middleOfThumb = 0;
int fillLeft = 0;
int fillRight = 0;
middleOfThumb = thumbRect.x + (thumbRect.width / 2);
middleOfThumb -= trackRect.x;
if (!drawInverted()) {
fillLeft = !slider.isEnabled() ? trackLeft : trackLeft + 1;
fillRight = middleOfThumb;
} else {
fillLeft = middleOfThumb;
fillRight = !slider.isEnabled() ? trackRight - 1
: trackRight - 2;
}
// 设定渐变
g2.setPaint(new GradientPaint(0, 0, new Color(200, 205, 100), cw,
0, new Color(255, 255, 0), true));
g2.fillRect(0, -cy, fillRight - fillLeft, cy);
g2.setPaint(slider.getBackground());
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_OFF);
g2.translate(-trackRect.x, -(trackRect.y + cy));
} else {
super.paintTrack(g);
}
}
}

--------------------编程问答-------------------- 骗子。 --------------------编程问答-------------------- 楼上鉴定完毕,LZ给分~~~ --------------------编程问答-------------------- 楼主大骗子 --------------------编程问答-------------------- 这个帖不是发过了吗,怎么换个标题又发了一次,不过看到代码就头晕晕的;呵呵,遭众怒了。 --------------------编程问答-------------------- 这样的帖子太多。 CSDN不日就完了。。。

悲剧啊。 --------------------编程问答-------------------- lz却是在忽悠人,呵呵,看来大家都是因为美女才进来的。 --------------------编程问答-------------------- 骗子,本想进来轻松一下的 --------------------编程问答-------------------- 看标题进来的~ --------------------编程问答-------------------- --------------------编程问答-------------------- 挂羊头卖狗肉
楼主厚道些~ --------------------编程问答-------------------- --------------------编程问答-------------------- 终于上当受骗了吧,楼主大骗子 --------------------编程问答-------------------- 你这骗子
标题党 --------------------编程问答-------------------- 我擦,又学了一招,还有这样问问题的?!!
简直霸气侧漏呀!!!! --------------------编程问答-------------------- 被低级的骗术骗了,为了泄愤,都不告诉楼主答案 --------------------编程问答-------------------- 哥几个,是我不好啊,可是我发了,就是没人来,我都急死了,各位大哥大姐,帮帮小弟吧 --------------------编程问答-------------------- 看标题进来的~ --------------------编程问答-------------------- --------------------编程问答-------------------- 呗骗了。。。。。。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- Unknown Source --------------------编程问答-------------------- 真是的话,斑竹早就删帖了。。。 --------------------编程问答-------------------- 被忽悠进来了! --------------------编程问答-------------------- 哦 不是美女啊 我走了  --------------------编程问答-------------------- 还有这样的呀,下次借鉴一下下,O(∩_∩)O哈哈~ --------------------编程问答--------------------
引用楼主 chengzilong1017 的回复:
at javax.swing.plaf.metal.MetalSliderUI.installUI(Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JSlider.setUI(Unknown Source)
 


你的JSlider类里面定义了setUI吗?    可以贴出JSlider的代码看看吗? --------------------编程问答-------------------- ...我手贱 --------------------编程问答-------------------- LZ  的人品如同他的结帖率  0.00% --------------------编程问答-------------------- 我手痒给点进来了。 --------------------编程问答-------------------- 这骗术好。。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,