⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorcal.java

📁 这个可以算是我第一个用Java写的应用程序
💻 JAVA
字号:
/*
 * @(#)ColorCal.java 1.0 02/11/09
 *
 *
 * Author:   MaxChou 
 * E-mail:   maxchou@163.com
 * HomePage: http://maxpace.caac.net/index.htm
 *
 */

package ColorCal;

import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.util.EventListener;
import java.awt.event.ActionEvent;

/*
 * This tool is use to convert Hex to RGB each other.
 * For example, I want to convert RGB to Hex, you can do it:
 * after input the RGB color value in the first, second, 
 * third text field, click "RGB >> Hex" button or press ENTER.
 * Hex convert to RGB is similar.
 *
 * How to run ColorCal?
 * "java ColorCal.ColorCal" or
 * double click "Run.bat"
 */
class ColorCal extends Frame implements ActionListener
{
	Panel pTop;
	Panel pCenter;
	Panel pBottom;
	Label lbRGB;
	Label lbHex;
	Label lbCopyright;
	TextField txHex;
	TextField txDecR;
	TextField txDecG;
	TextField txDecB;
	Button btRgb2Hex;
	Button btHex2Rgb;
	
	public ColorCal() {
		addWindowListener(new WindowAdapter()
			{	public void windowClosing(WindowEvent e)
				{	dispose();
					System.exit(0);
				}
			});
			
		init();
	}

	public void init()
	{
		pTop = new Panel();
		pCenter = new Panel();
		pBottom = new Panel();
		lbRGB = new Label("RGB");
		lbHex = new Label("Hex");
		lbCopyright = new Label("(C)2002 MaxChou. maxchou@163.com");
		txDecR = new TextField("214", 1);
		txDecG = new TextField("211", 1);
		txDecB = new TextField("206", 1);
		txHex = new TextField("D6D3CE", 4);
		btRgb2Hex = new Button("RGB >> Hex");
		btHex2Rgb = new Button("Hex >> RGB");
		
		setLayout(new BorderLayout());
		pTop.add(lbRGB);
		pTop.add(txDecR);
		pTop.add(txDecG);
		pTop.add(txDecB);
		pTop.add(btRgb2Hex);
		pCenter.add(lbHex);
		pCenter.add(txHex);
		pCenter.add(btHex2Rgb);
		pBottom.add(lbCopyright);
		pBottom.setBackground(new Color(214, 211, 206));
		add(pTop, BorderLayout.NORTH);
		add(pCenter, BorderLayout.CENTER);
		add(pBottom, BorderLayout.SOUTH);
		
		// Register event listener
		btRgb2Hex.setActionCommand("Rgb2Hex");
		btRgb2Hex.addActionListener(this);
		btHex2Rgb.setActionCommand("Hex2Rgb");
		btHex2Rgb.addActionListener(this);
		
		txDecR.addKeyListener(new KeyAdapter()
			{	public void keyPressed(KeyEvent e)
				{	rgbKeyPressed(e);
				}});
		txDecG.addKeyListener(new KeyAdapter()
			{	public void keyPressed(KeyEvent e)
				{	rgbKeyPressed(e);
				}});
		txDecB.addKeyListener(new KeyAdapter()
			{	public void keyPressed(KeyEvent e)
				{	rgbKeyPressed(e);
				}});
		txHex.addKeyListener(new KeyAdapter()
			{	public void keyPressed(KeyEvent e)
				{	hexKeyPressed(e);
				}});
		
		setSize(260, 125);
		setLocation(0, 200);
		setTitle("ColorCal - 1.01");
		setResizable(false);
		setBackground(new Color(214, 211, 206));
		setVisible(true);
	}
	
	void rgbKeyPressed(KeyEvent e)
	{
		if (e.getKeyCode() == e.VK_ENTER) rgb2hex();
	}
	
	void hexKeyPressed(KeyEvent e)
	{
		if (e.getKeyCode() == e.VK_ENTER) hex2rgb();
	}
	
	void rgb2hex()
	{
		int ir, ig, ib;
		String sr, sg, sb, sHex;

		// Set 255 if the input is empty
		if (txDecR.getText().equals(""))
			txDecR.setText("214");
		if (txDecG.getText().equals(""))
			txDecG.setText("211");
		if (txDecB.getText().equals(""))
			txDecB.setText("206");
			
		try
		{
			// Get the RGB value
			ir = Integer.parseInt(txDecR.getText());
			ig = Integer.parseInt(txDecG.getText());
			ib = Integer.parseInt(txDecB.getText());

			sr = Integer.toHexString(ir);
			sg = Integer.toHexString(ig);
			sb = Integer.toHexString(ib);
			if (sr.length() < 2) sr = "0" + sr;
			if (sg.length() < 2) sg = "0" + sg;
			if (sb.length() < 2) sb = "0" + sb;
			sHex = sr + sg + sb;
			txHex.setText(sHex.toUpperCase()); // Generate the Hex value
								
			// Show the color value changed in preview panel
			pBottom.setBackground(new Color(ir, ig, ib));
			lbCopyright.setBackground(new Color(ir, ig, ib));
		}
		catch (Exception e)
		{}
	}

	void hex2rgb()
	{
		int ir, ig, ib;
		String sr, sg, sb, sHex;

		if (txHex.getText().length() != 6)
			txHex.setText("D6D3CE");

		sHex = txHex.getText();
		sr = sHex.substring(0, 2);
		sg = sHex.substring(2, 4);
		sb = sHex.substring(4, 6);
	
		try
		{
			// Convert Hex to Dec
			ir = Integer.parseInt(sr, 16);
			ig = Integer.parseInt(sg, 16);
			ib = Integer.parseInt(sb, 16);
	
			// Update data
			txDecR.setText(Integer.toString(ir));
			txDecG.setText(Integer.toString(ig));
			txDecB.setText(Integer.toString(ib));
						
			// Show the color value changed in preview panel
			pBottom.setBackground(new Color(ir, ig, ib));
			lbCopyright.setBackground(new Color(ir, ig, ib));
		}
		catch (Exception e)
		{}
	}

	public void actionPerformed(ActionEvent e)
	{
		if (e.getActionCommand().equals("Rgb2Hex"))
		{
			rgb2hex();
		}
		else if (e.getActionCommand().equals("Hex2Rgb"))
		{
			hex2rgb();
		}
	}
	
	public static void main(String args[])
	{
		System.out.println("Starting ColorCal...");
		ColorCal mainFrame = new ColorCal();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -