zoukankan      html  css  js  c++  java
  • Java Swing类 颜色、按键状态判断例子代码

    package rom;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.plaf.SliderUI;
    
    /*
     * 写一个会自动变色的按键
     */
    public class Demo4 extends JFrame implements ActionListener,Runnable{
    	JPanel jPanel;
    	JButton jButton;
    	Thread thread;
    	static boolean off_on;
    	int h;
    	int s;
    	int b;
    	Color color1 = Color.YELLOW; //黄色
    	//                                黑色                               灰色                           灰色                                蓝色                           青色          
    	Color colors_data [][] = {{color1,Color.BLACK,Color.GRAY,Color.gray,Color.BLUE,Color.CYAN		
    			,Color.DARK_GRAY//深灰色  
    			,Color.GREEN //绿色
    			,Color.LIGHT_GRAY //浅灰
    			,Color.MAGENTA  //品红
    			,Color.ORANGE //橙色
    			,Color.PINK  //粉色
    			,Color.RED //红色
    			,Color.WHITE} //白色		
    			,{Color.getHSBColor(h,s,b)}};  //使用HSB拾色器模式拾取色彩,可以直接百度HSB了解
    			
    	public Demo4(String name) {
    		// TODO Auto-generated constructor stub
    		super(name);
    		thread = new Thread(this); //创建一个线程
    		jPanel = new JPanel(); //添加区域面板
    		jButton = new JButton("手动换颜色"); //添加按键
    		jPanel.setSize(180, 180); //设置区域面板快大小
    		jPanel.add(jButton,BorderLayout.CENTER); //添加按键并且设置按键位置在中央显示
    		add(jPanel,BorderLayout.CENTER); //添加Jpanel布局到jframe中,并且将位置设置在中央
    		jButton.addActionListener(this);  //按键监听
    		setSize(200, 200);  // 设置大小
    		setVisible(true);  //显示框体
    		validate(); //刷新验证
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		
    		// TODO Auto-generated method stub
    		if (e.getActionCommand() == "手动换颜色") { //判断按键是否按下手动换颜色	
    		off_on = false; //修改布尔值
    		h = (int)(Math.random()*361);
    		s = (int)(Math.random()*101);
    		b = (int)(Math.random()*101);
    		int i = (int)(Math.random()*2);
    		int j = (int)(Math.random()*2);
    		jButton.setBackground(colors_data[i][(int)(Math.random()*(colors_data[i].length))]); //设置按键背景颜色
    		jButton.setForeground(colors_data[j][(int)(Math.random()*(colors_data[j].length))]); //设置按键文本颜色
    		jButton.setText("自动换颜色"); //修改文本内容
    		}
    		else if (e.getActionCommand() == "自动换颜色") { //判断按键文本内容
    			off_on = true;
    			jButton.setText("手动换颜色"); //修改按键文本
    			if(!(thread.isAlive())) {  //判断线程是否关闭了,如果没有线程就创建一个新线程
    				thread = new Thread(this); //创建新线程
    			}
    			thread.start(); //启动线程
    		}
    	}
    	public static void main(String[] args) {
    		new Demo4("就很帅");
    	}
    
    	@Override
    	public void run() { //线程运行内容
    		// TODO Auto-generated method stub	
    		while (off_on) {	 //写一个while 循环修改按键颜色						
    		h = (int)(Math.random()*361);
    		s = (int)(Math.random()*101);
    		b = (int)(Math.random()*101);
    		int i = (int)(Math.random()*2);
    		int j = (int)(Math.random()*2);
    		jButton.setBackground(colors_data[i][(int)(Math.random()*(colors_data[i].length))]); //设置按键背景颜色
    		jButton.setForeground(colors_data[j][(int)(Math.random()*(colors_data[j].length))]);
    		try {
    			thread.sleep(1000);
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		validate();
    		}
    		
    	}
    
    	
    
    }
    

    运行结果:

  • 相关阅读:
    WPF编程系列
    使用ListBox控件来实现直方图控件(一)
    在WebBrowser控件中获取鼠标在网页上点击的位置
    使用WPF Resource以及Transform等技术实现鼠标控制图片缩放和移动的效果
    浮点数类型在计算机里面的表示方法
    点击asp:button按钮后,不刷新当前页面
    .NET ComponentArt 使用背景
    关于Microsoft ASP.NET 2.0 AJAX Extensions UpdatePanel 中使用 javascript 产生错误的问题
    基础平台数据导入(游标的使用)
    STUFF 函数的使用
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/9708650.html
Copyright © 2011-2022 走看看