首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JColorChooser更改JPanel颜色

使用JColorChooser更改JPanel颜色
EN

Stack Overflow用户
提问于 2018-01-18 06:27:58
回答 3查看 663关注 0票数 0

当按下"apply“按钮时,我正在尝试使用JColorChooser更改JPanel的颜色,但我不确定如何实际更改颜色。我该怎么做呢?

代码语言:javascript
运行
复制
private class SetColorAction implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
       setColor(DrawnView.colorChooser.getColor());
       //Color color;

    }

}

^是班级中的一个,而下面的内容是不同的

代码语言:javascript
运行
复制
public void setColor(Color color){
    this.setBackground(color);


}
public ViewUserActions() {

    this.applyColorBtn.setVisible(false);
    this.discardChangesBtn.setVisible(false);

    this.editBtn.addActionListener((ActionEvent ae) -> {
        if (this.editBtn.isSelected()) {

            this.applyColorBtn.setVisible(true);
            this.discardChangesBtn.setVisible(true);
        } else {

            this.applyColorBtn.setVisible(false);
            this.discardChangesBtn.setVisible(false);
        }
    });



    this.applyColorBtn.addActionListener(new SetColorAction());
    this.discardChangesBtn.addActionListener(new SetColorAction());
    this.applyColorBtn.addActionListener(new GetInfoAction());
    this.discardChangesBtn.addActionListener(new GetInfoAction());


}
EN

Stack Overflow用户

发布于 2018-01-18 14:39:03

试试这个简单的源代码:

代码语言:javascript
运行
复制
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class ColorChooserExample {

    private static JFrame frame;

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                runColorChangerApp();
            }
        });
    }

    private static void runColorChangerApp() {
        frame = new JFrame();
        frame.setTitle("JPanel Color Changer");
        frame.getContentPane().setLayout(new GridLayout(1, 1));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(400, 250, 400, 300);

        frame.getContentPane().add(getHomePanel());

        frame.setVisible(true);
    }

    private static JPanel getHomePanel() {
        final JPanel panel = new JPanel();
        panel.setOpaque(true);

        panel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent evt) {
                //Fire on Mouse Right Click
                if(evt.getButton() == MouseEvent.BUTTON3) {
                    frame.setTitle("Listened Right Click");
                    Color initColor = panel.getBackground();
                    Color choosedColor = JColorChooser.showDialog(panel, 
                            "Choose JPanel Background Color", initColor);
                    frame.setTitle("JPanel Color Changer");
                    panel.setBackground(choosedColor);
                }
            }
        });
        return panel;
    }

}
票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48311038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档