我有一个简单的程序,带有jcolorchooser一些文本字段和一个按钮.当我按下按钮时,会出现jcolorchooser然后我选择一种颜色.现在让我说我想采取我选择的背景颜色并将其应用到我的按钮,如下所示:
public class Slide extends JFrame{
Color bgColor;
JButton colorButton=new JButton();
JColorChooser colorPicker=new JColorChooser();
public Slide(){
JPanel panel=new JPanel();
panel.setLayout(new MigLayout("", "[][][][][]", "[][][][][][]"));
colorButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JColorChooser.showDialog(null, "title", null);
bgColor=colorPicker.getBackground();
colorButton.setBackground(bgColor);
}
});
colorButton.setText("Pick a color");
panel.add(colorButton, "cell 0 5");
this.setSize(400, 400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String args[]){
new Slide();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我的bgcolor不会应用于我的colorButton.Any想法?
用户从JColorChooser对话框中选择的颜色将作为showDialog()方法的返回值返回给您.
要从对话框中使用所选颜色更新JButton,您应该将代码更改为:
colorButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Color color = JColorChooser.showDialog(null, "title", null);
if (color != null) {
colorButton.setBackground(color);
}
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,如果用户已取消,showDialog()方法将返回null,这就是为什么我们需要在分配颜色之前检查它的值.
方法getBackground()是Component类中的一个方法,因此前面的代码bgColor=colorPicker.getBackground()只是返回JColorChooser对话框组件的实际颜色.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |