在java中设计一个窗口,该窗口中 有三个数字输入框,在每个框中分别输入颜色的RGB值,取值规定范围为[0,255]区间,按“更改颜色”按钮后,窗口中的文本按照指定的RGB值进行输出,在RGB值超出规定范围的情况下,文本显示为黑色。
时间: 2024-03-05 13:47:26 浏览: 19
好的,以下是Java实现该窗口的代码:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ColorWindow extends JFrame implements ActionListener {
private JLabel colorLabel;
private JTextField redInput;
private JTextField greenInput;
private JTextField blueInput;
public ColorWindow() {
setTitle("颜色选择器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 200);
setLayout(new BorderLayout());
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new GridLayout(3, 2));
inputPanel.add(new JLabel("红色值:"));
redInput = new JTextField("0");
inputPanel.add(redInput);
inputPanel.add(new JLabel("绿色值:"));
greenInput = new JTextField("0");
inputPanel.add(greenInput);
inputPanel.add(new JLabel("蓝色值:"));
blueInput = new JTextField("0");
inputPanel.add(blueInput);
add(inputPanel, BorderLayout.CENTER);
JButton changeButton = new JButton("更改颜色");
changeButton.addActionListener(this);
add(changeButton, BorderLayout.SOUTH);
colorLabel = new JLabel("颜色预览");
colorLabel.setHorizontalAlignment(JLabel.CENTER);
add(colorLabel, BorderLayout.NORTH);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
int red = Integer.parseInt(redInput.getText());
int green = Integer.parseInt(greenInput.getText());
int blue = Integer.parseInt(blueInput.getText());
if (red < 0 || red > 255 || green < 0 || green > 255 || blue < 0 || blue > 255) {
colorLabel.setForeground(Color.BLACK);
} else {
colorLabel.setForeground(new Color(red, green, blue));
}
}
public static void main(String[] args) {
new ColorWindow();
}
}
```
这个程序使用了Java的Swing库来创建窗口,并添加了三个数字输入框、一个“更改颜色”按钮和一个文本框。
在“更改颜色”按钮的回调函数中,程序从三个输入框中获取RGB值,并检查它们是否在[0,255]范围内。如果RGB值超出了该范围,则将文本颜色设置为黑色;否则,将文本颜色设置为指定的RGB值。
最后,在main函数中创建窗口实例并显示。