import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JColorChooser;
import javax.swing.colorchooser.ColorSelectionModel;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
import java.awt.Dimension;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
public class ColorComponent extends JFrame implements ChangeListener {
//实现了ChangeListener接口,这个监听轻量通知的监听器询问从变化事件获得的事件源,以了解与变化有关的更多信息。
JLabel label;
JColorChooser chooser;
public static void main(String arg[]) {
new ColorComponent();
}
public ColorComponent() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
} );
setLocation(250,150);
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
label = new JLabel("Color Dialog",JLabel.CENTER);
label.setFont(new Font("Serif",Font.BOLD,32));//设置字体
label.setPreferredSize(new Dimension(125,75));//设置适当大小
add(label,BorderLayout.NORTH);
chooser = new JColorChooser(label.getForeground());//一个允许用户操作和选择颜色的窗口
ColorSelectionModel model = chooser.getSelectionModel();//返回处理颜色选择的数据模型
model.addChangeListener(this);//添加监听对象
add(chooser,BorderLayout.SOUTH);//JFrame中的方法,将其添加进窗口
pack();//调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该 Window
setVisible(true);//显示窗口
}
public void stateChanged(ChangeEvent e) {//ChangeListener接口的方法
Color color = chooser.getColor();//获取所选颜色
label.setForeground(color);//设置前景色
}
}
对话框设置:
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import java.io.File;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Color;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class ColorDialog extends JFrame implements ActionListener {
JButton b1;
JButton b2;
JButton b3;
public static void main(String arg[]) {
new ColorDialog();
}
public ColorDialog() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
} );
setLocation(250,150);
Container pane = getContentPane();
pane.setLayout(new FlowLayout());为容器设置布局管理器,流布局在一个 left-to-right 流中安排组件,很象在段落中的文本行。 流布局特别常用于在面板中安排按钮。 它会从左到右的安排按钮直到在同一行中不可以再放置更多的按钮时为止。 每行都是中心对齐的。
b1 = new JButton("Buttons");
b1.addActionListener(this);
pane.add(b1);
b2 = new JButton("Letters");
b2.addActionListener(this);
pane.add(b2);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
int retval;
String selection = e.getActionCommand();
if(selection.equals("Buttons")) {
Color color = JColorChooser.showDialog(this,
"Select background color of buttons",
b1.getBackground());
b1.setBackground(color);
b2.setBackground(color);
} else if(selection.equals("Letters")) {
Color color = JColorChooser.showDialog(this,
"Select color of button text",
b1.getForeground());
b1.setForeground(color);
b2.setForeground(color);
repaint();
}
}
}
分享到:
相关推荐
——————————————————————————————————————————————
良葛格————JavaJDK5.0学良葛格————JavaJDK5.0学习笔记PDF.rar习笔记PDF.rar良葛格良葛格————JavaJDK5.0学习笔记PDF.rar————JavaJDK5.0学习笔记PDF.rar良葛格————JavaJDK5.0学习笔记PDF.rar良...
javaNIO学习笔记(csdn)————程序
Allegro学习笔记之6——热风焊盘Allegro学习笔记之6——热风焊盘
java学习笔记很适合初学者了解。看了一遍,觉得还行!所以拿上来分享。
良葛格的Java学习笔记~讲解得非常详细。JDK5.0的~是Java入门的不错选择。
Java JDK 6学习笔记——ppt简体版.rar
Java JDK 6学习笔记——ppt简体版加课本代码
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
【第一部分】历史文章: ...Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数Share
Android学习笔记(九)——更复杂的进度对话框 完整代码,显示操作进度的进度对话框~
JAVA学习笔记第八天——示例代码Day08,包含接口作为方法参数和返回值示例代码、多态示例代码、内部类示例代码
JAVA学习笔记第七天——示例代码Day07,其中包含访问修饰符示例代码、final关键字示例代码、接口示例代码、接口和类的关系示例代码
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记