java - 使用 JColorChooser 更改 JPanel 颜色

标签 java swing

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

private class SetColorAction implements ActionListener{

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

    }

}

^ 是类(class)中的一个,而下面的内容是在不同的类(class)中

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());


}

最佳答案

这是一个通过单击按钮更改 JPanel 背景颜色的简短演示。
该凸轮还可以让您了解mcve ,仅此而已:

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Frame extends JFrame {

    JPanel panel;
    Color[] colors = new Color[] {Color.YELLOW, Color.CYAN, Color.LIGHT_GRAY, Color.WHITE};
    int counter =0;

    Frame() {

        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        JButton button = new JButton("Change color");
        button.addActionListener( ae -> setColor());
        add(button, BorderLayout.NORTH);

        panel = new JPanel();
        panel.add(new JLabel ("Test panel"));
        add(panel, BorderLayout.CENTER);

        pack();
        setVisible(true);
    }

    private void setColor() {
        panel.setBackground(colors[counter++]);
        counter = (counter >= colors.length) ?  0 : counter;
    }

    public static void main(String[] args)  {
        new Frame();
    }
}

关于java - 使用 JColorChooser 更改 JPanel 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48311038/

相关文章:

java - 我怎么只能关闭JDialog框?

java - 切换 JPanels 和 keyListeners

java - 我如何使用 Java 和 Xerces 解析符合 1.1 规范的 XML?

java - NSIS Eclipse 插件不工作

java正则表达式接受除无之外的任何单词

swing - JTable、自定义标题渲染器和排序图标

java - 分布式 Java 桌面应用程序 mySQL 数据库

java - 安卓- eclipse : "Syntax error on token " (", Expression expected after this token"

java - 动态下载 .class 时出现 AccessControl 异常

java - Java 中的 jTable 编码