gpt4 book ai didi

java - JColorChooser 不会改变 JLabel 的文本颜色

转载 作者:行者123 更新时间:2023-12-01 14:42:23 27 4
gpt4 key购买 nike

我正在尝试创建一个 JColorChooser 对话框,其上方有一个 JLabel,以便 JLabel 文本颜色将更改为用户使用 JColorChooser 选择的颜色。这是我到目前为止所拥有的,但它没有为我编译。

import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;

public class JColorChooserExample extends JFrame
{
private JColorChooser colorChooser; // instance variables
private JLabel banner;

public JColorChooserExample() // constructor
{
add(banner = new JLabel("Welcome to the Tutorial Zone!", JLabel.CENTER), BorderLayout.NORTH);
banner.setForeground(Color.BLACK);
add(colorChooser = new JColorChooser(banner.getForeground()), BorderLayout.SOUTH);

ListenerClass listener = new ListenerClass();
colorChooser.addChangeListener(listener);
}

public static void main(String[] args)
{
JColorChooserExample frame = new JColorChooserExample(); // new frame object
frame.setTitle("JColorChooser Example"); // set frame title
frame.pack(); // sizes the frame so components fit frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ends program on frame closing
frame.setLocationRelativeTo(null); // centre frame
frame.setVisible(true); // make frame visible
}

private class ListenerClass implements ChangeListener
{
public void stateChanged(ChangeEvent e)
{
Color newColor = colorChooser.getColor();
banner.setForeground(newColor);
}
}
}

最佳答案

ChangeListener 应向 JColorChooserColorSelectionModel 注册,而不是直接向 JColorChooser 本身注册。

colorChooser.getSelectionModel().addChangeListener(listener);

How to Use Color Choosers

关于java - JColorChooser 不会改变 JLabel 的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15822681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com