躺平77 2022-06-02 19:23 采纳率: 60%
浏览 55

java slider 使用改变背景颜色

Java slider想要改变颜色,三个Color参数,滑块值改变但是容器panel背景并未发生变化,问问这是什么原因,怎么才能时背景颜色跟着滑块值改变而变化


```java
package fourth;

/**
 *
 * @author lenovo
 */
import javax.swing.*;
import java.awt.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Fourth extends JFrame{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        JFrame jf = new JFrame("测试窗口");
        jf.setSize(500, 500);
        jf.setLocationRelativeTo(null);

        JPanel panel = new JPanel();
        
        
        //三个文本框组件显示当前滑块组件数值
        JTextField text_1 = new JTextField(10);
        JTextField text_2 = new JTextField(10);   
        JTextField text_3 = new JTextField(10);
        
        // 创建一个滑块,最小值、最大值、初始值 分别为 0、255、125
        final JSlider slider_1 = new JSlider(0, 255,125);
        final JSlider slider_2 = new JSlider(0, 255,125);
        final JSlider slider_3 = new JSlider(0, 255,125);

        // 设置主刻度间隔
        slider_1.setMajorTickSpacing(50);
        slider_2.setMajorTickSpacing(50);
        slider_3.setMajorTickSpacing(50);

        // 设置次刻度间隔
        slider_1.setMinorTickSpacing(10);
        slider_2.setMinorTickSpacing(10);
        slider_3.setMinorTickSpacing(10);

        // 绘制 刻度 和 标签
        slider_1.setPaintTicks(true);
        slider_1.setPaintLabels(true);
        slider_2.setPaintTicks(true);
        slider_2.setPaintLabels(true);
        slider_3.setPaintTicks(true);
        slider_3.setPaintLabels(true);

        // 添加刻度改变监听器
        slider_1.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                String x1=""+slider_1.getValue();
                text_1.setText(x1);
            }
        });
         slider_2.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                String x2=""+slider_2.getValue();
                text_2.setText(x2);
            }
        });
          slider_3.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                String x3=""+slider_3.getValue();
                text_3.setText(x3);
            }
        });

        
        // 添加滑块到内容面板
        panel.add(slider_1);
        panel.add(text_1);
        panel.add(slider_2);
        panel.add(text_2);
        panel.add(slider_3);
        panel.add(text_3);
        
        panel.setBackground(new Color(slider_1.getValue(),slider_2.getValue(),slider_3.getValue()));
        
        jf.setContentPane(panel);
        jf.setVisible(true);
    } 
}

```

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 6月2日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据