返回列表 發帖

JSlider 類別

本帖最後由 周政輝 於 2018-5-5 12:03 編輯

利用 JSlider 元件,設計一個簡單的 rgb 調色盤如圖所示。


本帖隱藏的內容需要回復才可以瀏覽
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

  1. import java.awt.BorderLayout;
  2. import java.awt.EventQueue;

  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. import javax.swing.border.EmptyBorder;
  6. import javax.swing.JTextField;
  7. import javax.swing.border.LineBorder;
  8. import javax.swing.event.ChangeEvent;
  9. import javax.swing.event.ChangeListener;

  10. import java.awt.Color;

  11. import javax.swing.JSlider;
  12. import javax.swing.JLabel;

  13. import java.awt.Font;

  14. import javax.swing.SwingConstants;


  15. public class Main extends JFrame {

  16.         private JPanel contentPane;
  17.         private JTextField textField;
  18.         private JSlider slider1;
  19.         private JSlider slider2;
  20.         private JSlider slider3;
  21.         private JLabel lb_r;
  22.         private JLabel lb_g;
  23.         private JLabel lb_b;
  24.         private JPanel panel;
  25.     private int r,g,b;
  26.         /**
  27.          * Launch the application.
  28.          */
  29.         public static void main(String[] args) {
  30.                 EventQueue.invokeLater(new Runnable() {
  31.                         public void run() {
  32.                                 try {
  33.                                         Main frame = new Main();
  34.                                         frame.setVisible(true);
  35.                                         frame.setTitle("調色工具");
  36.                                 } catch (Exception e) {
  37.                                         e.printStackTrace();
  38.                                 }
  39.                         }
  40.                 });
  41.         }

  42.         /**
  43.          * Create the frame.
  44.          */
  45.         public Main() {
  46.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  47.                 setBounds(100, 100, 435, 403);
  48.                 contentPane = new JPanel();
  49.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  50.                 setContentPane(contentPane);
  51.                 contentPane.setLayout(null);
  52.                
  53.                 textField = new JTextField();
  54.                 textField.setHorizontalAlignment(SwingConstants.CENTER);
  55.                 textField.setText("0,0,0");
  56.                 textField.setBounds(164, 10, 96, 21);
  57.                 contentPane.add(textField);
  58.                 textField.setColumns(10);
  59.                
  60.                 panel = new JPanel();
  61.                 panel.setBackground(new Color(0, 0, 0));
  62.                 panel.setBorder(new LineBorder(new Color(0, 0, 0)));
  63.                 panel.setBounds(149, 41, 126, 128);
  64.                 contentPane.add(panel);
  65.                
  66.                 slider1 = new JSlider();
  67.                 slider1.setValue(0);
  68.                 slider1.setMaximum(255);
  69.                 slider1.setBounds(10, 193, 276, 23);
  70.                 slider1.addChangeListener(new ChangeListener(){
  71.                           public void stateChanged(ChangeEvent e)
  72.                           {
  73.                                   lb_r.setText(slider1.getValue()+"");
  74.                                   r=slider1.getValue();
  75.                                   panel.setBackground(new Color(r, g, b));
  76.                                   textField.setText(r+","+g+","+b);
  77.                           }
  78.                 });
  79.                 contentPane.add(slider1);
  80.                
  81.                 slider2 = new JSlider();
  82.                 slider2.setValue(0);
  83.                 slider2.setMaximum(255);
  84.                 slider2.setBounds(10, 254, 276, 23);
  85.                 slider2.addChangeListener(new ChangeListener(){
  86.                           public void stateChanged(ChangeEvent e)
  87.                           {
  88.                                   lb_g.setText(slider2.getValue()+"");
  89.                                   g=slider2.getValue();
  90.                                   panel.setBackground(new Color(r, g, b));
  91.                                   textField.setText(r+","+g+","+b);
  92.                           }
  93.                 });
  94.                 contentPane.add(slider2);
  95.                
  96.                 slider3 = new JSlider();
  97.                 slider3.setValue(0);
  98.                 slider3.setMaximum(255);
  99.                 slider3.setBounds(10, 312, 276, 23);
  100.                 slider3.addChangeListener(new ChangeListener(){
  101.                           public void stateChanged(ChangeEvent e)
  102.                           {
  103.                                   lb_b.setText(slider3.getValue()+"");
  104.                                   b=slider3.getValue();
  105.                                   panel.setBackground(new Color(r, g, b));
  106.                                   textField.setText(r+","+g+","+b);
  107.                           }
  108.                 });
  109.                 contentPane.add(slider3);
  110.                
  111.                 lb_r = new JLabel("0");
  112.                 lb_r.setFont(new Font("新細明體", Font.BOLD, 16));
  113.                 lb_r.setForeground(Color.RED);
  114.                 lb_r.setBounds(318, 193, 57, 23);
  115.                 contentPane.add(lb_r);
  116.                
  117.                 lb_g = new JLabel("0");
  118.                 lb_g.setForeground(new Color(0, 100, 0));
  119.                 lb_g.setFont(new Font("新細明體", Font.BOLD, 16));
  120.                 lb_g.setBounds(318, 254, 57, 23);
  121.                 contentPane.add(lb_g);
  122.                
  123.                 lb_b = new JLabel("0");
  124.                 lb_b.setForeground(new Color(0, 0, 139));
  125.                 lb_b.setFont(new Font("新細明體", Font.BOLD, 16));
  126.                 lb_b.setBounds(318, 312, 57, 23);
  127.                 contentPane.add(lb_b);
  128.         }
  129. }
複製代碼

TOP

  1. package tw.kuas.edu.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;

  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import javax.swing.border.EmptyBorder;
  7. import javax.swing.JSlider;
  8. import javax.swing.JLabel;
  9. import java.awt.Color;
  10. import java.awt.Font;
  11. import javax.swing.event.ChangeListener;
  12. import javax.swing.event.ChangeEvent;

  13. public class RGB extends JFrame {

  14.         private JPanel contentPane;
  15.         int r;
  16.         int g;
  17.         int b;

  18.         /**
  19.          * Launch the application.
  20.          */
  21.         public static void main(String[] args) {
  22.                 EventQueue.invokeLater(new Runnable() {
  23.                         public void run() {
  24.                                 try {
  25.                                         RGB frame = new RGB();
  26.                                         frame.setVisible(true);
  27.                                 } catch (Exception e) {
  28.                                         e.printStackTrace();
  29.                                 }
  30.                         }
  31.                 });
  32.         }

  33.         /**
  34.          * Create the frame.
  35.          */
  36.         public RGB() {
  37.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  38.                 setBounds(100, 100, 450, 300);
  39.                 contentPane = new JPanel();
  40.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  41.                 setContentPane(contentPane);
  42.                 contentPane.setLayout(null);
  43.                
  44.                 JPanel bground = new JPanel();
  45.                 bground.setBounds(10, 10, 414, 114);
  46.                 contentPane.add(bground);
  47.                
  48.                 JLabel label_r = new JLabel("0");
  49.                 label_r.setFont(new Font("Consolas", Font.BOLD, 18));
  50.                 label_r.setForeground(Color.RED);
  51.                 label_r.setBounds(364, 150, 60, 23);
  52.                 contentPane.add(label_r);
  53.                
  54.                 JLabel label_g = new JLabel("0");
  55.                 label_g.setForeground(Color.GREEN);
  56.                 label_g.setFont(new Font("Consolas", Font.BOLD, 18));
  57.                 label_g.setBounds(364, 183, 60, 23);
  58.                 contentPane.add(label_g);
  59.                
  60.                 JLabel label_b = new JLabel("0");
  61.                 label_b.setForeground(Color.BLUE);
  62.                 label_b.setFont(new Font("Consolas", Font.BOLD, 18));
  63.                 label_b.setBounds(364, 216, 60, 23);
  64.                 contentPane.add(label_b);
  65.                
  66.                 JSlider slider_r = new JSlider();
  67.                 JSlider slider_g = new JSlider();
  68.                 JSlider slider_b = new JSlider();               
  69.                 slider_r.setMaximum(255);
  70.                 slider_r.addChangeListener(new ChangeListener() {
  71.                         public void stateChanged(ChangeEvent e) {
  72.                                 label_r.setText(String.valueOf(slider_r.getValue()));
  73.                                 Color color = new Color(slider_r.getValue(),slider_g.getValue(),slider_b.getValue());
  74.                                 bground.setBackground(color);
  75.                         }
  76.                 });
  77.                
  78.                 slider_r.setValue(0);
  79.                 slider_r.setBounds(10, 150, 344, 23);
  80.                 contentPane.add(slider_r);
  81.                
  82.                 slider_g.setValue(0);
  83.                 slider_g.setMaximum(255);
  84.                 slider_g.setBounds(10, 183, 344, 23);
  85.                 contentPane.add(slider_g);               
  86.                 slider_g.addChangeListener(new ChangeListener() {
  87.                         public void stateChanged(ChangeEvent e) {
  88.                                 label_g.setText(String.valueOf(slider_g.getValue()));
  89.                                 Color color = new Color(slider_r.getValue(),slider_g.getValue(),slider_b.getValue());
  90.                                 bground.setBackground(color);
  91.                         }
  92.                 });
  93.                
  94.                
  95.                 slider_b.addChangeListener(new ChangeListener() {
  96.                         public void stateChanged(ChangeEvent e) {
  97.                                 label_b.setText(String.valueOf(slider_b.getValue()));
  98.                                 Color color = new Color(slider_r.getValue(),slider_g.getValue(),slider_b.getValue());
  99.                                 bground.setBackground(color);
  100.                         }
  101.                 });
  102.                 slider_b.setValue(0);
  103.                 slider_b.setMaximum(255);
  104.                 slider_b.setBounds(10, 216, 344, 23);
  105.                 contentPane.add(slider_b);
  106.                                
  107.         }
  108. }
複製代碼

TOP

  1. package asdf;

  2. import java.awt.Color;
  3. import java.awt.EventQueue;

  4. import javax.swing.JFrame;
  5. import javax.swing.JSlider;

  6. import java.awt.BorderLayout;

  7. import javax.swing.GroupLayout;
  8. import javax.swing.GroupLayout.Alignment;
  9. import javax.swing.LayoutStyle.ComponentPlacement;
  10. import javax.swing.JLabel;
  11. import javax.swing.event.ChangeListener;
  12. import javax.swing.event.ChangeEvent;
  13. import javax.swing.JPanel;

  14. public class Main {

  15.         private JFrame frmRgb;

  16.         /**
  17.          * Launch the application.
  18.          */
  19.         public static void main(String[] args) {
  20.                 EventQueue.invokeLater(new Runnable() {
  21.                         public void run() {
  22.                                 try {
  23.                                         Main window = new Main();
  24.                                         window.frmRgb.setVisible(true);
  25.                                 } catch (Exception e) {
  26.                                         e.printStackTrace();
  27.                                 }
  28.                         }
  29.                 });
  30.         }

  31.         /**
  32.          * Create the application.
  33.          */
  34.         public Main() {
  35.                 initialize();
  36.         }

  37.         /**
  38.          * Initialize the contents of the frame.
  39.          */
  40.         private void initialize() {
  41.                 frmRgb = new JFrame();
  42.                 frmRgb.setTitle("RGB\u8ABF\u8272\u5DE5\u5177");
  43.                 frmRgb.setBounds(100, 100, 413, 284);
  44.                 frmRgb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  45.                 frmRgb.getContentPane().setLayout(null);
  46.                
  47.                 JSlider G = new JSlider();
  48.                 frmRgb.getContentPane().add(G);
  49.                 G.setValue(0);      
  50.                 G.setMaximum(255);
  51.                 G.setBounds(37, 110, 261, 29);
  52.                 G.setMaximum(255);
  53.                
  54.                 JSlider B = new JSlider();
  55.                 frmRgb.getContentPane().add(B);
  56.                 B.setValue(0);      
  57.                 B.setMaximum(255);
  58.                 B.setBounds(37, 204, 261, 32);
  59.                 B.setMaximum(255);
  60.                
  61.                 JSlider R = new JSlider();
  62.                 frmRgb.getContentPane().add(R);
  63.                 R.setValue(0);      
  64.                 R.setMaximum(255);
  65.                 R.setBounds(37, 159, 261, 29);
  66.                 R.setMaximum(255);
  67.                
  68.                 JLabel green = new JLabel("0");
  69.                 frmRgb.getContentPane().add(green);
  70.                 green.setForeground(Color.GREEN);
  71.                 green.setBounds(329, 100, 47, 51);
  72.                
  73.                 JLabel red = new JLabel("0");
  74.                 frmRgb.getContentPane().add(red);
  75.                 red.setForeground(Color.RED);
  76.                 red.setBounds(329, 159, 47, 29);
  77.                
  78.                 JLabel blue = new JLabel("0");
  79.                 frmRgb.getContentPane().add(blue);
  80.                 blue.setForeground(Color.BLUE);
  81.                 blue.setBounds(329, 204, 30, 21);
  82.                
  83.                 JPanel panel = new JPanel();
  84.                 panel.setBounds(113, 10, 126, 90);
  85.                 frmRgb.getContentPane().add(panel);
  86.                 B.addChangeListener(new ChangeListener() {
  87.                         public void stateChanged(ChangeEvent e) {
  88.                                  blue.setText(String.valueOf(B.getValue()));
  89.                  Color color = new Color(R.getValue(),G.getValue(),B.getValue());
  90.                  panel.setBackground(color);
  91.                         }
  92.                 });
  93.                 R.addChangeListener(new ChangeListener() {
  94.                         public void stateChanged(ChangeEvent e) {
  95.                                  red.setText(String.valueOf(R.getValue()));
  96.                  Color color = new Color(R.getValue(),G.getValue(),B.getValue());
  97.                  panel.setBackground(color);
  98.                         }
  99.                 });
  100.                 G.addChangeListener(new ChangeListener() {
  101.                         public void stateChanged(ChangeEvent e) {
  102.                                  green.setText(String.valueOf(G.getValue()));
  103.                  Color color = new Color(R.getValue(),G.getValue(),B.getValue());
  104.                  panel.setBackground(color);
  105.                         }
  106.                 });
  107.         }
  108. }
複製代碼
我是眾神之王XXX  I love you
0000000000

TOP

本帖最後由 蔡季樺 於 2018-5-6 13:33 編輯
  1. import java.awt.BorderLayout;
  2. import java.awt.EventQueue;

  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. import javax.swing.border.EmptyBorder;
  6. import javax.swing.JSlider;
  7. import javax.swing.JLabel;
  8. import javax.swing.event.ChangeListener;
  9. import javax.swing.event.ChangeEvent;
  10. import java.awt.Color;


  11. public class Main extends JFrame {

  12.         private JPanel blue;
  13.         
  14.         /**
  15.          * Launch the application.
  16.          */
  17.         public static void main(String[] args) {
  18.                 EventQueue.invokeLater(new Runnable() {
  19.                         public void run() {
  20.                                 try {
  21.                                         Main frame = new Main();
  22.                                         frame.setVisible(true);
  23.                                 } catch (Exception e) {
  24.                                         e.printStackTrace();
  25.                                 }
  26.                         }
  27.                 });
  28.         }

  29.         /**
  30.          * Create the frame.
  31.          */
  32.         public Main() {
  33.                
  34.                         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  35.                 setBounds(100, 100, 450, 300);
  36.                 blue = new JPanel();
  37.                 blue.setBorder(new EmptyBorder(5, 5, 5, 5));
  38.                 setContentPane(blue);
  39.                 blue.setLayout(null);
  40.                
  41.                 JSlider b = new JSlider();
  42.                 b.setValue(0);
  43.                
  44.                 b.setMaximum(255);
  45.                 b.setBounds(10, 197, 200, 23);
  46.                 blue.add(b);
  47.                
  48.                 JLabel green = new JLabel("0");
  49.                 green.setForeground(Color.BLUE);
  50.                 green.setBounds(307, 205, 46, 15);
  51.                 blue.add(green);
  52.                
  53.                 JSlider g = new JSlider();
  54.                 g.setValue(0);
  55.                
  56.                 g.setMaximum(255);
  57.                 g.setBounds(10, 142, 200, 23);
  58.                 blue.add(g);
  59.                
  60.                 JLabel label2 = new JLabel("0");
  61.                 label2.setForeground(Color.GREEN);
  62.                 label2.setBounds(307, 150, 46, 15);
  63.                 blue.add(label2);
  64.                
  65.                 JSlider r = new JSlider();
  66.                 r.setValue(0);
  67.                
  68.                 r.setMaximum(255);
  69.                 r.setBounds(10, 95, 200, 23);
  70.                 blue.add(r);
  71.                
  72.                 JLabel red = new JLabel("0");
  73.                 red.setForeground(Color.RED);
  74.                 red.setBounds(307, 95, 46, 15);
  75.                 blue.add(red);
  76.                
  77.                 JPanel panel = new JPanel();
  78.                 panel.setBounds(183, 10, 67, 63);
  79.                 blue.add(panel);
  80.                 b.addChangeListener(new ChangeListener() {
  81.                         public void stateChanged(ChangeEvent arg0) {
  82.                                 green.setText(String.valueOf(b.getValue()));
  83.                                 Color color = new Color(r.getValue(),g.getValue(),b.getValue());
  84.                                 panel.setBackground(color);
  85.                         }
  86.                 });
  87.                 g.addChangeListener(new ChangeListener() {
  88.                         public void stateChanged(ChangeEvent arg0) {
  89.                                 label2.setText(String .valueOf(g.getValue()));
  90.                                 Color color = new Color(r.getValue(),g.getValue(),b.getValue());
  91.                                 panel.setBackground(color);
  92.                         }
  93.                 });
  94.                 r.addChangeListener(new ChangeListener() {
  95.                         public void stateChanged(ChangeEvent arg0) {
  96.                                 red.setText(String .valueOf(r.getValue()));
  97.                                 Color color = new Color(r.getValue(),g.getValue(),b.getValue());
  98.                                 panel.setBackground(color);
  99.                         }
  100.                 });
  101.         }
  102. }
複製代碼
提醒大家
Jlabel & Jframe
無法設定背景
(需用Jpanel)

TOP

本帖最後由 蔡庭豪 於 2018-5-12 10:25 編輯
  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;

  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import javax.swing.border.EmptyBorder;
  7. import javax.swing.GroupLayout;
  8. import javax.swing.GroupLayout.Alignment;
  9. import javax.swing.JLabel;
  10. import javax.swing.JSlider;
  11. import javax.swing.event.ChangeListener;
  12. import javax.swing.event.ChangeEvent;
  13. import java.awt.Color;

  14. public class RGB extends JFrame {

  15.         private JPanel contentPane;

  16.         /**
  17.          * Launch the application.
  18.          */
  19.         public static void main(String[] args) {
  20.                 EventQueue.invokeLater(new Runnable() {
  21.                         public void run() {
  22.                                 try {
  23.                                         RGB frame = new RGB();
  24.                                         frame.setVisible(true);
  25.                                 } catch (Exception e) {
  26.                                         e.printStackTrace();
  27.                                 }
  28.                         }
  29.                 });
  30.         }

  31.         /**
  32.          * Create the frame.
  33.          */
  34.         public RGB() {
  35.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  36.                 setBounds(100, 100, 450, 300);
  37.                 contentPane = new JPanel();
  38.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  39.                 setContentPane(contentPane);
  40.                 contentPane.setLayout(null);
  41.                
  42.                 JLabel lblRed = new JLabel("red");
  43.                 lblRed.setForeground(Color.RED);
  44.                 lblRed.setBounds(10, 192, 21, 15);
  45.                 contentPane.add(lblRed);
  46.                
  47.                 JLabel lblGreen = new JLabel("green");
  48.                 lblGreen.setForeground(Color.GREEN);
  49.                 lblGreen.setBounds(10, 215, 36, 15);
  50.                 contentPane.add(lblGreen);
  51.                
  52.                 JLabel lblBlue = new JLabel("blue");
  53.                 lblBlue.setForeground(Color.BLUE);
  54.                 lblBlue.setBounds(10, 237, 21, 15);
  55.                 contentPane.add(lblBlue);
  56.                
  57.                 JLabel gl = new JLabel();
  58.                 gl.setText("0");
  59.                 gl.setBounds(403, 207, 21, 23);
  60.                 contentPane.add(gl);
  61.                
  62.                 JLabel bl = new JLabel();
  63.                 bl.setText("0");
  64.                 bl.setBounds(403, 229, 21, 23);
  65.                 contentPane.add(bl);
  66.                
  67.                 JLabel rl = new JLabel();
  68.                 rl.setText("0");
  69.                 rl.setBounds(403, 184, 21, 23);
  70.                 contentPane.add(rl);
  71.                
  72.                 JSlider sliderred = new JSlider();
  73.                
  74.                 sliderred.setValue(0);
  75.                 sliderred.setMaximum(255);
  76.                 sliderred.setBounds(56, 184, 343, 23);
  77.                 contentPane.add(sliderred);
  78.                
  79.                 JSlider slidergreen = new JSlider();
  80.                
  81.                 slidergreen.setValue(0);
  82.                 slidergreen.setMaximum(255);
  83.                 slidergreen.setBounds(56, 207, 343, 23);
  84.                 contentPane.add(slidergreen);
  85.                
  86.                 JSlider sliderblue = new JSlider();
  87.                 sliderblue.setValue(0);
  88.                 sliderblue.setMaximum(255);
  89.                 sliderblue.setBounds(56, 229, 343, 23);
  90.                 contentPane.add(sliderblue);
  91.                
  92.                 JPanel panel = new JPanel();
  93.                 panel.setBounds(10, 10, 414, 172);
  94.                 contentPane.add(panel);
  95.                
  96.                 sliderblue.addChangeListener(new ChangeListener() {
  97.                         public void stateChanged(ChangeEvent arg0) {
  98.                                
  99.                                 bl.setText(String.valueOf(sliderblue.getValue()));
  100.                                 Color color = new Color(sliderred.getValue(), slidergreen.getValue(),sliderblue.getValue());
  101.                                 panel.setBackground(color);
  102.                         }
  103.                 });
  104.                 slidergreen.addChangeListener(new ChangeListener() {
  105.                         public void stateChanged(ChangeEvent arg0) {
  106.                                 gl.setText(String.valueOf(slidergreen.getValue()));
  107.                                 Color color = new Color(sliderred.getValue(), slidergreen.getValue(),sliderblue.getValue());
  108.                                 panel.setBackground(color);
  109.                         }
  110.                 });
  111.                 sliderred.addChangeListener(new ChangeListener() {
  112.                         public void stateChanged(ChangeEvent e) {
  113.                                 Color color = new Color(sliderred.getValue(), slidergreen.getValue(),sliderblue.getValue());
  114.                                 panel.setBackground(color);
  115.                         }
  116.                 });
  117.         }
  118. }
複製代碼

TOP

返回列表