龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java Swing中的JButton、JComboBox、JList和JColorChooser组件使用案例(7)

时间:2014-10-14 11:06来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ColorChooserDemo1 extends MouseAdapter { JFrame f = null; JLabel label = null; JLabel label1 =

复制代码 代码如下:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
 
public class ColorChooserDemo1 extends MouseAdapter { 
     
    JFrame f = null; 
    JLabel label = null; 
    JLabel label1 = null; 
    JLabel label2 = null; 
    Rectangle rec1 = null; 
    Rectangle rec2 = null; 
 
    public ColorChooserDemo1() { 
     
        f = new JFrame("ColorChooser Example"); 
        Container contentPane = f.getContentPane(); 
        contentPane.addMouseListener(this); 
 
        label = new JLabel(" ", JLabel.CENTER); 
        label.setPreferredSize(new Dimension(300, 20)); 
 
        JPanel panel = new JPanel(); 
        panel.setLayout(new GridLayout(1, 2)); 
 
        label1 = new JLabel("左Label", JLabel.CENTER); 
        label1.setBackground(Color.red); 
        label1.setForeground(Color.black); 
        label1.setOpaque(true); 
        label1.setBounds(0, 0, 150, 150); 
        panel.add(label1); 
 
        label2 = new JLabel("右Label", JLabel.CENTER); 
        label2.setBackground(Color.green); 
        label2.setForeground(Color.black); 
        label2.setOpaque(true); 
        label2.setBounds(150, 0, 150, 150); 
        panel.add(label2); 
 
        rec1 = label1.getBounds(); 
        rec2 = label2.getBounds(); 
 
        contentPane.add(panel, BorderLayout.CENTER); 
        contentPane.add(label, BorderLayout.SOUTH); 
 
        f.setSize(new Dimension(300, 150)); 
        f.setVisible(true); 
 
        f.addWindowListener(new WindowAdapter() { 
            public void windowClosing(WindowEvent e) { 
                System.exit(0); 
            } 
        }); 
    } 
 
    // 实现MouseAdapter中的mousePressed()与mouseClicked()方法.当按下鼠标时,就能知道鼠标光标目前的位置.当连续键击鼠标 
    // 两次时,若光标所在位置在label中,就会出现颜色选择对话框,用户可选择任一颜色更改label的颜色. 
    public void mousePressed(MouseEvent e) { 
        label.setText("目前鼠标坐标(X,Y)为:(" + e.getX() + "," + e.getY() + ")"); 
    } 
 
    public void mouseClicked(MouseEvent e) { 
        Point point = e.getPoint(); 
 
        if (e.getClickCount() == 2) { 
            if (rec1.contains(point)) { 
                /*
                 * 利用JColorChooser的showDialog()静态方法输出颜色选择对话框
                 * ,showDialog()中的3个参数依次是: 对话框的父组件,颜色选择对话框标题
                 * ,与对话框默认颜色.当用户选择完颜色之后,按下"OK"按钮则返回
                 * Color对象,若按下"Cancel"按钮则返回null值.
                 */ 
                Color color = JColorChooser.showDialog(f, 
                        "Change label1 Color", Color.white); 
                if (color != null) // 若为null值表示用户按下Cancel按钮 
                    label1.setBackground(color); 
            } 
            if (rec2.contains(point)) { 
                Color color = JColorChooser.showDialog(f, 
                        "Change label2 Color", Color.yellow); 
                if (color != null) // 若为null值表示用户按下Cancel按钮 
                    label2.setBackground(color); 
            } 
        } 
    } 
     
    public static void main(String[] arg) { 
        new ColorChooserDemo1(); 
    } 
}

程序运行示意图:

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接