Merhaba arkadaşlar, bu yazımızda Java görsel programlamada ComboBox ile RGB (Red Green Blue) mantığı ve yardımıyla bir renk uygulaması yapacağız. Comboboxtan 0-255 arası bir sayı seçeceğiz her bir R G B değeri için. Bu seçtiğimiz sayılara göre arka plan rengi değişecek.
RGB Nedir?
RGB renk modeli bir eklemeli renk modelidir ki burada kırmızı, yeşil ve mavi ışık geniş renk yelpazesi üretmek için çeşitli şekillerde birbirine eklenir. Modelin adı, üç ek ana rengin baş harflerinden gelir. Bu RGB dediğimiz olayda her bir renk 255 e kadar numaralanır ve her birinin tonu farklıdır. Bu tonlara göre renkler birleşir ve ortaya yeni bir renk çıkar.
ComboBox Nedir?
Her sitede çoğunlukla karşılaştığımız açılır menülerdir.
Kodlarımıza geçelim;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
package teknografya; import java.awt.BorderLayout; import java.awt.Color; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.SwingConstants; import java.awt.Font; import java.awt.event.ItemListener; import java.awt.event.ItemEvent; public class cboxrenk extends JFrame { private JPanel contentPane; DefaultComboBoxModel model_red = new DefaultComboBoxModel<>(); DefaultComboBoxModel model_green = new DefaultComboBoxModel<>(); DefaultComboBoxModel model_blue = new DefaultComboBoxModel<>(); static int r,g,b; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { cboxrenk frame = new cboxrenk(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public cboxrenk() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); setTitle("Teknografya.com - RGB ComboBox"); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JComboBox c_red = new JComboBox(); int i; for(i=0; i<=255; i++) model_red.addElement(i); c_red.setModel(model_red); c_red.setBounds(32, 24, 77, 22); contentPane.add(c_red); JComboBox c_green = new JComboBox(); for(i=0; i<=255; i++) model_green.addElement(i); c_green.setModel(model_green); c_green.setBounds(168, 24, 77, 22); contentPane.add(c_green); JComboBox c_blue = new JComboBox(); for(i=0; i<=255; i++) model_blue.addElement(i); c_blue.setModel(model_blue); c_blue.setBounds(306, 24, 77, 22); contentPane.add(c_blue); JLabel lblKrmz = new JLabel("Kırmızı"); lblKrmz.setBounds(42, 0, 56, 16); contentPane.add(lblKrmz); JLabel lblYesil = new JLabel("Yeşil"); lblYesil.setBounds(189, 0, 56, 16); contentPane.add(lblYesil); JLabel lblMavi = new JLabel("Mavi"); lblMavi.setBounds(327, 0, 56, 16); contentPane.add(lblMavi); JLabel lblNewLabel = new JLabel("RENK"); lblNewLabel.setOpaque(true); lblNewLabel.setFont(new Font("Yu Gothic", Font.BOLD, 49)); lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); lblNewLabel.setBounds(32, 75, 351, 148); contentPane.add(lblNewLabel); r=0; g=0; b=0; c_red.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { r = c_red.getSelectedIndex(); lblNewLabel.setBackground(new Color(r,g,b)); } }); c_green.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { g = c_green.getSelectedIndex(); lblNewLabel.setBackground(new Color(r,g,b)); } }); c_blue.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { b = c_blue.getSelectedIndex(); lblNewLabel.setBackground(new Color(r,g,b)); } }); } } |
Programımız şu şekilde çalışacaktır;
Sorunuz olursa konu altından belirtiniz.