import java.awt.AWTException;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Robot;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/*
* ColorScale.java
*
* Created on 11. März 2004, 13:52
*/
/**
*
* @author Darimont
*/
public class ColorScale extends javax.swing.JFrame {
private Color color;
/** Creates new form ColorScale */
public ColorScale() {
initComponents();
setVisible(true);
}
/**
* @param image
*/
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
paneBase = new javax.swing.JPanel();
paneControls = new javax.swing.JPanel();
lblSlide = new javax.swing.JLabel();
jSlider1 = new javax.swing.JSlider();
paneMiniPict = new javax.swing.JPanel();
panGradient = new GradientPanel();
getContentPane().setLayout(new java.awt.FlowLayout());
setTitle("Color Scale");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jSlider1.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
int val = jSlider1.getValue();
try {
Robot robot = new Robot();
System.out.println(val * 2.5);
Point p = getLocation();
color = robot.getPixelColor((int)(val * 2.5)+p.x,70+p.y);
System.out.println("Color: " + color);
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Graphics2D g2d = (Graphics2D) paneMiniPict.getGraphics();
g2d.setColor(color);
g2d.fillRect(0, 0, 16, 16);
}
});
paneBase.setLayout(new java.awt.GridBagLayout());
paneBase.setBackground(new java.awt.Color(51, 153, 255));
paneBase.setMinimumSize(new java.awt.Dimension(320, 240));
paneBase.setPreferredSize(new java.awt.Dimension(320, 240));
paneControls.setLayout(new java.awt.GridBagLayout());
paneControls.setBackground(new java.awt.Color(255, 153, 0));
paneControls.setMinimumSize(new java.awt.Dimension(320, 100));
paneControls.setPreferredSize(new java.awt.Dimension(320, 100));
lblSlide.setText("Scale: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
paneControls.add(lblSlide, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
paneControls.add(jSlider1, gridBagConstraints);
paneMiniPict.setBorder(
new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0)));
paneMiniPict.setMinimumSize(new java.awt.Dimension(16, 16));
paneMiniPict.setPreferredSize(new java.awt.Dimension(16, 16));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
paneControls.add(paneMiniPict, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
paneBase.add(paneControls, gridBagConstraints);
panGradient.setBackground(new java.awt.Color(255, 255, 204));
panGradient.setMinimumSize(new java.awt.Dimension(320, 140));
panGradient.setPreferredSize(new java.awt.Dimension(320, 140));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
paneBase.add(panGradient, gridBagConstraints);
getContentPane().add(paneBase);
pack();
}
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new ColorScale();
}
// Variables declaration - do not modify
private javax.swing.JLabel lblSlide;
private javax.swing.JPanel paneBase;
private javax.swing.JPanel paneControls;
private javax.swing.JPanel panGradient;
private javax.swing.JPanel paneMiniPict;
private javax.swing.JSlider jSlider1;
// End of variables declaration
class GradientPanel extends JPanel {
private int width;
private int height;
public void paintComponent(Graphics g) {
super.paintComponent(g);
width = getWidth();
height = getHeight();
Graphics2D g2d = (Graphics2D) g;
g2d.setPaint(
new GradientPaint(0, 0, Color.BLUE, width, height, Color.RED));
g2d.fillRect(0, 0, width, height);
}
}
}