下面是一个基于Java的示例源代码,展示了如何创建一个调色板(颜色选择器)面板:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ColorPalettePanel extends JPanel implements ActionListener {
private Color selectedColor;
public ColorPalettePanel() {
setLayout(new GridLayout(4, 4, 5, 5));
setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
// 颜色数组
Color[] colors = {Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW,
Color.ORANGE, Color.PINK, Color.CYAN, Color.MAGENTA,
Color.BLACK, Color.GRAY, Color.LIGHT_GRAY, Color.DARK_GRAY,
Color.WHITE, Color.decode("#FF69B4"), Color.decode("#00FFFF"), Color.decode("#FFD700")};
// 创建颜色按钮并添加到面板中
for (Color color : colors) {
JButton button = new JButton();
button.setBackground(color);
button.setPreferredSize(new Dimension(30, 30));
button.setBorder(BorderFactory.createLineBorder(Color.BLACK));
button.addActionListener(this);
add(button);
}
}
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
selectedColor = button.getBackground();
// 处理选中的颜色
// 可以在此处编写自定义的逻辑
// 示例中,我们打印所选颜色的RGB值
System.out.println("Selected Color: " + selectedColor.getRed() + ", " + selectedColor.getGreen() + ", " + selectedColor.getBlue());
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(400, 400);
ColorPalettePanel palettePanel = new ColorPalettePanel();
frame.add(palettePanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
```
在上述代码中,我们创建了一个`ColorPalettePanel`类,继承自`JPanel`,用于显示调色板(颜色选择器)面板。在构造函数中,我们设置了面板的布局为`GridLayout`,4行4列的网格布局,并创建了16个颜色按钮并添加到面板中。
在`actionPerformed()`方法中,我们处理按钮的点击事件,获取选中的颜色,并执行相应的逻辑操作。示例中,我们仅仅打印所选颜色的RGB值,你可以在此处编写你自己的逻辑。
在`main()`方法中,我们创建了一个`JFrame`窗口,并添加了`ColorPalettePanel`面板。设置窗口的大小,并显示窗口。
希望以上示例能帮助您创建一个简单的调色板面板并处理所选颜色的事件!如有任何其他问题,请随时告知,我将尽力为您提供帮助!
参考资料