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

📄 color_set.java

📁 植物仿真
💻 JAVA
字号:
package classes;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.colorchooser.*;

public class Color_set extends JFrame implements ChangeListener,ActionListener
{
	JSlider s_1,s_2,s_3;//颜色参数滚动条
	JButton ok=new JButton("确定");
	JButton cancel=new JButton("取消");
	JLabel label_1=new JLabel("   R: 0");//显示颜色改变值
	JLabel label_2=new JLabel("   G: 0");
	JLabel label_3=new JLabel("   B: 0");
	JTextField text=new JTextField("        当前颜色");//当前颜色显示
	Container con=this.getContentPane();//获取内容面板

	JPanel p_1=new JPanel();
	JPanel p_2=new JPanel();
	JPanel p_3=new JPanel();
	JPanel p_4=new JPanel();
	JPanel p_5=new JPanel();
	JPanel p_6=new JPanel();

	public static Dimension VGAP5 = new Dimension(1,5);
	Lsystem local_system;
	int R,G,B;
	int fore_OR_back_Color;//系统要改变的是前景色还是背景色(0为前景色,1为背景色)
					
	Color_set(Lsystem system,String st,int number)
	{
		super(st);
		local_system=system;

		fore_OR_back_Color=number;

		con.setLayout(new GridLayout(4,1));
		p_4.setLayout(new GridLayout(2,1));
		p_5.setLayout(new GridLayout(1,4));
		p_6.setLayout(new GridLayout(1,5));

		//如果是零则R,G,B的初始值为前景色的值
		if(fore_OR_back_Color==0)
		{
			R=local_system.getForeColor().getRed();
			G=local_system.getForeColor().getGreen();
			B=local_system.getForeColor().getBlue();
		}
		//如果是壹则R,G,B的初始值为背景色的值
		if(fore_OR_back_Color==1)
		{
			R=local_system.getBackColor().getRed();
			G=local_system.getBackColor().getGreen();
			B=local_system.getBackColor().getBlue();
		}
		p_1.setLayout(new BoxLayout(p_1,BoxLayout.Y_AXIS));//设置面板布局
		p_1.setBorder(new TitledBorder("R"));//设置标题
		s_1=new JSlider(0,255,R);//初始化滑动条,颜色值0到255
		p_1.add(Box.createRigidArea(VGAP5));
		p_1.add(s_1);

		p_2.setLayout(new BoxLayout(p_2,BoxLayout.Y_AXIS));
		p_2.setBorder(new TitledBorder("G"));
		s_2=new JSlider(0,255,G);
		p_2.add(Box.createRigidArea(VGAP5));
		p_2.add(s_2);

		p_3.setLayout(new BoxLayout(p_3,BoxLayout.Y_AXIS));
		p_3.setBorder(new TitledBorder("B"));
		s_3=new JSlider(0,255,B);
		p_3.add(Box.createRigidArea(VGAP5));
		p_3.add(s_3);

		text.setBackground(new Color(R,G,B));//由文本框显示当前颜色

		p_5.add(label_1);
		p_5.add(label_2);
		p_5.add(label_3);
		p_5.add(text);

		p_6.add(new Label());
		p_6.add(ok);
		p_6.add(new Label());
		p_6.add(cancel);
		p_6.add(new Label());

		p_4.add(p_5);
		p_4.add(p_6);

		con.add(p_1);
		con.add(p_2);
		con.add(p_3);
		con.add(p_4);

		s_1.addChangeListener(this);
		s_2.addChangeListener(this);
		s_3.addChangeListener(this);

		ok.addActionListener(this);
		cancel.addActionListener(this);

		addWindowListener(new WindowAdapter()//添加窗体监听(既是:窗体右上角的关闭按钮)
		{
			public void windowClosing(WindowEvent e)
		 {setVisible(false);}
		});

		setBackground(Color.lightGray);//设置背景色
		setSize(390,300);//设置窗体尺寸
		setResizable(false);//设置不可改变窗体尺寸
		//获取默认显示器的尺寸
		Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
		//设置窗体显示位置
		this.setLocation((d.width-this.getSize().width)/2,(d.height-this.getSize().width)/2);
		this.setVisible(true);
	}

	public void stateChanged(ChangeEvent ce)
	{
		//当滑动条有一个值改变,文本框显示当前颜色
		if(ce.getSource()==s_1||ce.getSource()==s_2||ce.getSource()==s_3)
		{
			Color color=new Color(s_1.getValue(),s_2.getValue(),s_3.getValue());
			text.setBackground(color);
		}
		if(ce.getSource()==s_1)
		{
			R=s_1.getValue();//获取颜色参数R值
			label_1.setText("   R: "+s_1.getValue());//显示改变值
		}
		if(ce.getSource()==s_2)
		{
			G=s_2.getValue();//获取颜色参数G值
			label_2.setText("   G: "+s_2.getValue());
		}
		if(ce.getSource()==s_3)
		{
			B=s_3.getValue();//获取颜色参数B值
			label_3.setText("   B: "+s_3.getValue());
		}
	}

	public void actionPerformed(ActionEvent ae)
	{
		if(ae.getSource()==ok)
		{
			local_system.R=R;//将当前颜色参数值返回给系统颜色参数
			local_system.G=G;
			local_system.B=B;
			//通过fore_OR_back_Color值调用原系统设置前景色或背景色的函数(0为前景色,1为背景色)
			if(fore_OR_back_Color==0)
				local_system.setForeColor();
			else
				local_system.setBackColor();
			this.setVisible(false);//关闭颜色设置窗口
		}
		if(ae.getSource()==cancel)//关闭窗口,颜色不改变
		{
			this.setVisible(false);
		}

	}

}

⌨️ 快捷键说明

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