এই কর্তৃক প্রদত্ত উত্তর একজন অভিযোজিত সংস্করণ Vivien Barousse থেকে আপডেট সঙ্গে Vulcan প্রয়োগ করা হয়েছে। এই উদাহরণে আমি স্লাইডারগুলি তিনটি স্লাইডার থেকে আরজিবি মানগুলি গতিশীলভাবে পুনরুদ্ধার করতে এবং সেই রঙটি একটি আয়তক্ষেত্রের মধ্যে প্রদর্শন করতে ব্যবহার করি। তারপরে টুহেক্স () পদ্ধতিতে আমি একটি রঙ তৈরি করতে এবং সম্পর্কিত হেক্স রঙের কোডটি প্রদর্শন করতে মানগুলি ব্যবহার করি।
এই উদাহরণটিতে গ্রিডব্যাগলআউটটির জন্য উপযুক্ত বাধা অন্তর্ভুক্ত নয়। কোডটি কাজ করলেও প্রদর্শনটি অদ্ভুত লাগবে।
public class HexColor
{
public static void main (String[] args)
{
JSlider sRed = new JSlider(0,255,1);
JSlider sGreen = new JSlider(0,255,1);
JSlider sBlue = new JSlider(0,255,1);
JLabel hexCode = new JLabel();
JPanel myPanel = new JPanel();
GridBagLayout layout = new GridBagLayout();
JFrame frame = new JFrame();
frame.setLayout(layout);
myPanel.paintComponent();
myPanel.setBackground(Color.GRAY);
sRed.addChangeListener(
new ChangeListener()
{
@Override
public void stateChanged(ChangeEvent e){
myPanel.setBackground(changeColor());
myPanel.repaint();
hexCode.setText(toHex());
}
}
);
frame.add(myPanel);
frame.add(sRed);
frame.add(sGreen);
frame.add(sBlue);
frame.add(hexCode);
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawRect(360, 300, 10, 10);
g.fillRect(360, 300, 10, 10);
}
private Color changeColor()
{
int r = sRed.getValue();
int b = sBlue.getValue();
int g = sGreen.getValue();
Color c;
return c = new Color(r,g,b);
}
private String toHex()
{
Integer r = sRed.getValue();
Integer g = sGreen.getValue();
Integer b = sBlue.getValue();
Color hC;
hC = new Color(r,g,b);
String hex = Integer.toHexString(hC.getRGB() & 0xffffff);
while(hex.length() < 6){
hex = "0" + hex;
}
hex = "Hex Code: #" + hex;
return hex;
}
}
ভিভিয়ন এবং ভলকান উভয়কেই একটি বিশাল ধন্যবাদ। এই সমাধানটি নিখুঁতভাবে কাজ করে এবং এটি প্রয়োগ করা অত্যন্ত সহজ।